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

#include <pkt_flow_info.h>

Collaboration diagram for PktFlowInfo:

Public Member Functions

 PktFlowInfo (Agent *a, boost::shared_ptr< PktInfo > info, FlowTable *ftable)
 
void CheckLinkLocal (const PktInfo *pkt)
 
void LinkLocalServiceFromVm (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void LinkLocalServiceFromHost (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void LinkLocalServiceTranslate (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void BgpRouterServiceFromVm (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void BgpRouterServiceTranslate (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void FloatingIpSNat (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void FloatingIpDNat (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void IngressProcess (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void EgressProcess (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void Add (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
bool Process (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
bool ValidateConfig (const PktInfo *pkt, PktControlInfo *in)
 
bool VrfTranslate (const PktInfo *pkt, PktControlInfo *ctrl, PktControlInfo *rev_flow, const IpAddress &src_ip, bool nat_flow)
 
void NatVxlanVrfTranslate (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void UpdateFipStatsInfo (FlowEntry *flow, FlowEntry *rflow, const PktInfo *p, const PktControlInfo *in, const PktControlInfo *o)
 
const NextHopTunnelToNexthop (const PktInfo *pkt)
 
void ChangeVrf (const PktInfo *pkt, PktControlInfo *info, const VrfEntry *vrf)
 
bool UnknownUnicastFlow (const PktInfo *p, const PktControlInfo *in_info, const PktControlInfo *out_info)
 
void GenerateTrafficSeen (const PktInfo *pkt, const PktControlInfo *in)
 
void ApplyFlowLimits (const PktControlInfo *in, const PktControlInfo *out)
 
void LinkLocalPortBind (const PktInfo *pkt, const PktControlInfo *in, FlowEntry *flow)
 
bool IngressRouteAllowNatLookup (const AgentRoute *in_rt, const AgentRoute *out_rt, uint32_t sport, uint32_t dport, const Interface *intf)
 
bool EgressRouteAllowNatLookup (const AgentRoute *in_rt, const AgentRoute *out_rt, uint32_t sport, uint32_t dport, const Interface *intf)
 
void ChangeEncap (const VmInterface *intf, const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out, bool nat_flow)
 
void ChangeFloatingIpEncap (const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
void ChangeEncapToOverlay (const VmInterface *intf, const PktInfo *pkt, PktControlInfo *in, PktControlInfo *out)
 
IpAddress FamilyToAddress (Address::Family family)
 
void UpdateRoute (const AgentRoute **rt, const VrfEntry *vrf, const IpAddress &addr, const MacAddress &mac, FlowRouteRefMap &ref_map)
 
uint8_t RouteToPrefixLen (const AgentRoute *route)
 
void CalculatePort (const PktInfo *p, const Interface *intf)
 
void SetPktInfo (boost::shared_ptr< PktInfo > info)
 
bool RouteAllowNatLookupCommon (const AgentRoute *rt, uint32_t sport, uint32_t dport, const Interface *intf)
 
bool IsBgpRouterServiceRoute (const AgentRoute *in_rt, const AgentRoute *out_rt, const Interface *intf, uint32_t sport, uint32_t dport)
 
void UpdateEvictedFlowStats (const PktInfo *pkt)
 

Static Public Member Functions

static bool ComputeDirection (const Interface *intf)
 
static bool GetIngressNwPolicyAclList (const Interface *intf, const VnEntry *vn, MatchPolicy *m_policy)
 

Public Attributes

bool l3_flow
 
Address::Family family
 
boost::shared_ptr< PktInfopkt
 
FlowTableflow_table
 
Agentagent
 
uint32_t flow_source_vrf
 
uint32_t flow_dest_vrf
 
FlowRouteRefMap flow_source_plen_map
 
FlowRouteRefMap flow_dest_plen_map
 
bool nat_done
 
IpAddress nat_ip_saddr
 
IpAddress nat_ip_daddr
 
uint32_t nat_sport
 
uint32_t nat_dport
 
uint32_t nat_vrf
 
uint32_t nat_dest_vrf
 
uint32_t dest_vrf
 
const AclDBEntryacl
 
bool ingress
 
bool short_flow
 
bool local_flow
 
bool linklocal_flow
 
bool tcp_ack
 
bool linklocal_bind_local_port
 
int linklocal_src_port_fd
 
bool ecmp
 
uint32_t out_component_nh_idx
 
bool disable_validation
 
bool fip_snat
 
bool fip_dnat
 
IpAddress snat_fip
 
uint16_t short_flow_reason
 
std::string peer_vrouter
 
TunnelType tunnel_type
 
FlowEntryflow_entry
 
bool flood_unknown_unicast
 
bool bgp_router_service_flow
 
bool alias_ip_flow
 
uint8_t ttl
 
bool underlay_flow
 
uint32_t src_policy_vrf
 
uint32_t dst_policy_vrf
 
const VnListTypesrc_vn
 
const VnListTypedst_vn
 
bool port_allocated
 
bool overlay_route_not_found
 

Static Public Attributes

static const int kLinkLocalInvalidFd = -1
 
static const Ip4Address kDefaultIpv4
 
static const Ip6Address kDefaultIpv6
 
static const int kBgpRouterServiceInvalidFd = -1
 

Detailed Description

Definition at line 37 of file pkt_flow_info.h.

Constructor & Destructor Documentation

PktFlowInfo::PktFlowInfo ( Agent a,
boost::shared_ptr< PktInfo info,
FlowTable ftable 
)
inline

Definition at line 44 of file pkt_flow_info.h.

Member Function Documentation

void PktFlowInfo::Add ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 2092 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::ApplyFlowLimits ( const PktControlInfo in,
const PktControlInfo out 
)

Definition at line 1972 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::BgpRouterServiceFromVm ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 767 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::BgpRouterServiceTranslate ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 827 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::CalculatePort ( const PktInfo p,
const Interface intf 
)
void PktFlowInfo::ChangeEncap ( const VmInterface intf,
const PktInfo pkt,
PktControlInfo in,
PktControlInfo out,
bool  nat_flow 
)

Definition at line 1238 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::ChangeEncapToOverlay ( const VmInterface intf,
const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 1130 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::ChangeFloatingIpEncap ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 1199 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::ChangeVrf ( const PktInfo pkt,
PktControlInfo info,
const VrfEntry vrf 
)

Definition at line 66 of file pkt_flow_info.cc.

void PktFlowInfo::CheckLinkLocal ( const PktInfo pkt)

Definition at line 581 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::ComputeDirection ( const Interface intf)
static

Definition at line 123 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::EgressProcess ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 1599 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::EgressRouteAllowNatLookup ( const AgentRoute in_rt,
const AgentRoute out_rt,
uint32_t  sport,
uint32_t  dport,
const Interface intf 
)

Definition at line 569 of file pkt_flow_info.cc.

Here is the call graph for this function:

IpAddress PktFlowInfo::FamilyToAddress ( Address::Family  family)

Definition at line 2281 of file pkt_flow_info.cc.

void PktFlowInfo::FloatingIpDNat ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 839 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::FloatingIpSNat ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 961 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::GenerateTrafficSeen ( const PktInfo pkt,
const PktControlInfo in 
)

Definition at line 1907 of file pkt_flow_info.cc.

Here is the call graph for this function:

static bool PktFlowInfo::GetIngressNwPolicyAclList ( const Interface intf,
const VnEntry vn,
MatchPolicy m_policy 
)
static
void PktFlowInfo::IngressProcess ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 1406 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::IngressRouteAllowNatLookup ( const AgentRoute in_rt,
const AgentRoute out_rt,
uint32_t  sport,
uint32_t  dport,
const Interface intf 
)

Definition at line 552 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::IsBgpRouterServiceRoute ( const AgentRoute in_rt,
const AgentRoute out_rt,
const Interface intf,
uint32_t  sport,
uint32_t  dport 
)

Definition at line 490 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::LinkLocalPortBind ( const PktInfo pkt,
const PktControlInfo in,
FlowEntry flow 
)

Definition at line 2050 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::LinkLocalServiceFromHost ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 677 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::LinkLocalServiceFromVm ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 596 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::LinkLocalServiceTranslate ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 757 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::NatVxlanVrfTranslate ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 1346 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::Process ( const PktInfo pkt,
PktControlInfo in,
PktControlInfo out 
)

Definition at line 1825 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::RouteAllowNatLookupCommon ( const AgentRoute rt,
uint32_t  sport,
uint32_t  dport,
const Interface intf 
)

Definition at line 536 of file pkt_flow_info.cc.

Here is the call graph for this function:

uint8_t PktFlowInfo::RouteToPrefixLen ( const AgentRoute route)

Definition at line 100 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::SetPktInfo ( boost::shared_ptr< PktInfo info)

Definition at line 2276 of file pkt_flow_info.cc.

const NextHop * PktFlowInfo::TunnelToNexthop ( const PktInfo pkt)

Definition at line 1545 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::UnknownUnicastFlow ( const PktInfo p,
const PktControlInfo in_info,
const PktControlInfo out_info 
)

Definition at line 1707 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::UpdateEvictedFlowStats ( const PktInfo pkt)

Definition at line 2077 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::UpdateFipStatsInfo ( FlowEntry flow,
FlowEntry rflow,
const PktInfo p,
const PktControlInfo in,
const PktControlInfo o 
)

Definition at line 2219 of file pkt_flow_info.cc.

Here is the call graph for this function:

void PktFlowInfo::UpdateRoute ( const AgentRoute **  rt,
const VrfEntry vrf,
const IpAddress addr,
const MacAddress mac,
FlowRouteRefMap ref_map 
)

Definition at line 71 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::ValidateConfig ( const PktInfo pkt,
PktControlInfo in 
)

Definition at line 1761 of file pkt_flow_info.cc.

Here is the call graph for this function:

bool PktFlowInfo::VrfTranslate ( const PktInfo pkt,
PktControlInfo ctrl,
PktControlInfo rev_flow,
const IpAddress src_ip,
bool  nat_flow 
)

Definition at line 1248 of file pkt_flow_info.cc.

Here is the call graph for this function:

Member Data Documentation

const AclDBEntry* PktFlowInfo::acl

Definition at line 176 of file pkt_flow_info.h.

Agent* PktFlowInfo::agent

Definition at line 149 of file pkt_flow_info.h.

bool PktFlowInfo::alias_ip_flow

Definition at line 209 of file pkt_flow_info.h.

bool PktFlowInfo::bgp_router_service_flow

Definition at line 206 of file pkt_flow_info.h.

uint32_t PktFlowInfo::dest_vrf

Definition at line 173 of file pkt_flow_info.h.

bool PktFlowInfo::disable_validation

Definition at line 191 of file pkt_flow_info.h.

uint32_t PktFlowInfo::dst_policy_vrf

Definition at line 215 of file pkt_flow_info.h.

const VnListType* PktFlowInfo::dst_vn

Definition at line 217 of file pkt_flow_info.h.

bool PktFlowInfo::ecmp

Definition at line 187 of file pkt_flow_info.h.

Address::Family PktFlowInfo::family

Definition at line 146 of file pkt_flow_info.h.

bool PktFlowInfo::fip_dnat

Definition at line 195 of file pkt_flow_info.h.

bool PktFlowInfo::fip_snat

Definition at line 194 of file pkt_flow_info.h.

bool PktFlowInfo::flood_unknown_unicast

Definition at line 203 of file pkt_flow_info.h.

FlowRouteRefMap PktFlowInfo::flow_dest_plen_map

Definition at line 157 of file pkt_flow_info.h.

uint32_t PktFlowInfo::flow_dest_vrf

Definition at line 152 of file pkt_flow_info.h.

FlowEntry* PktFlowInfo::flow_entry

Definition at line 202 of file pkt_flow_info.h.

FlowRouteRefMap PktFlowInfo::flow_source_plen_map

Definition at line 156 of file pkt_flow_info.h.

uint32_t PktFlowInfo::flow_source_vrf

Definition at line 151 of file pkt_flow_info.h.

FlowTable* PktFlowInfo::flow_table

Definition at line 148 of file pkt_flow_info.h.

bool PktFlowInfo::ingress

Definition at line 179 of file pkt_flow_info.h.

const int PktFlowInfo::kBgpRouterServiceInvalidFd = -1
static

Definition at line 42 of file pkt_flow_info.h.

const Ip4Address PktFlowInfo::kDefaultIpv4
static

Definition at line 40 of file pkt_flow_info.h.

const Ip6Address PktFlowInfo::kDefaultIpv6
static

Definition at line 41 of file pkt_flow_info.h.

const int PktFlowInfo::kLinkLocalInvalidFd = -1
static

Definition at line 39 of file pkt_flow_info.h.

bool PktFlowInfo::l3_flow

Definition at line 145 of file pkt_flow_info.h.

bool PktFlowInfo::linklocal_bind_local_port

Definition at line 184 of file pkt_flow_info.h.

bool PktFlowInfo::linklocal_flow

Definition at line 182 of file pkt_flow_info.h.

int PktFlowInfo::linklocal_src_port_fd

Definition at line 185 of file pkt_flow_info.h.

bool PktFlowInfo::local_flow

Definition at line 181 of file pkt_flow_info.h.

uint32_t PktFlowInfo::nat_dest_vrf

Definition at line 169 of file pkt_flow_info.h.

bool PktFlowInfo::nat_done

Definition at line 160 of file pkt_flow_info.h.

uint32_t PktFlowInfo::nat_dport

Definition at line 164 of file pkt_flow_info.h.

IpAddress PktFlowInfo::nat_ip_daddr

Definition at line 162 of file pkt_flow_info.h.

IpAddress PktFlowInfo::nat_ip_saddr

Definition at line 161 of file pkt_flow_info.h.

uint32_t PktFlowInfo::nat_sport

Definition at line 163 of file pkt_flow_info.h.

uint32_t PktFlowInfo::nat_vrf

Definition at line 166 of file pkt_flow_info.h.

uint32_t PktFlowInfo::out_component_nh_idx

Definition at line 188 of file pkt_flow_info.h.

bool PktFlowInfo::overlay_route_not_found

Definition at line 219 of file pkt_flow_info.h.

std::string PktFlowInfo::peer_vrouter

Definition at line 198 of file pkt_flow_info.h.

boost::shared_ptr<PktInfo> PktFlowInfo::pkt

Definition at line 147 of file pkt_flow_info.h.

bool PktFlowInfo::port_allocated

Definition at line 218 of file pkt_flow_info.h.

bool PktFlowInfo::short_flow

Definition at line 180 of file pkt_flow_info.h.

uint16_t PktFlowInfo::short_flow_reason

Definition at line 197 of file pkt_flow_info.h.

IpAddress PktFlowInfo::snat_fip

Definition at line 196 of file pkt_flow_info.h.

uint32_t PktFlowInfo::src_policy_vrf

Definition at line 214 of file pkt_flow_info.h.

const VnListType* PktFlowInfo::src_vn

Definition at line 216 of file pkt_flow_info.h.

bool PktFlowInfo::tcp_ack

Definition at line 183 of file pkt_flow_info.h.

uint8_t PktFlowInfo::ttl

Definition at line 211 of file pkt_flow_info.h.

TunnelType PktFlowInfo::tunnel_type

Definition at line 199 of file pkt_flow_info.h.

bool PktFlowInfo::underlay_flow

Definition at line 213 of file pkt_flow_info.h.


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