OpenSDN source code
VmInterface Class Reference

#include <vm_interface.h>

Inheritance diagram for VmInterface:
Collaboration diagram for VmInterface:

Classes

struct  AliasIp
 
struct  AliasIpList
 
struct  AllowedAddressPair
 
struct  AllowedAddressPairList
 
struct  BridgeDomain
 
struct  BridgeDomainList
 
struct  FatFlowEntry
 
struct  FatFlowExcludeList
 
struct  FatFlowList
 
struct  FloatingIp
 
struct  FloatingIpList
 
struct  InstanceIp
 
struct  InstanceIpList
 
struct  LearntMacIp
 
struct  LearntMacIpList
 
struct  List
 
struct  ListEntry
 
struct  SecurityGroupEntry
 
struct  SecurityGroupEntryList
 
struct  ServiceVlan
 
struct  ServiceVlanList
 
struct  StaticRoute
 
struct  StaticRouteList
 
struct  TagEntry
 
struct  TagEntryList
 
struct  VmiReceiveRoute
 
struct  VmiReceiveRouteList
 
struct  VrfAssignRule
 
struct  VrfAssignRuleList
 

Public Types

enum  Configurer { INSTANCE_MSG , CONFIG }
 
enum  DeviceType {
  DEVICE_TYPE_INVALID , VM_ON_TAP , VM_VLAN_ON_VMI , VM_PHYSICAL_VLAN ,
  VM_PHYSICAL_MAC , TOR , LOCAL_DEVICE , REMOTE_VM_VLAN_ON_VMI ,
  VM_SRIOV , VMI_ON_LR
}
 
enum  VmiType {
  VMI_TYPE_INVALID , INSTANCE , SERVICE_CHAIN , SERVICE_INSTANCE ,
  BAREMETAL , GATEWAY , REMOTE_VM , SRIOV ,
  VHOST , ROUTER
}
 
enum  LabelType {
  LABEL_TYPE_INVALID = 0 , LABEL_TYPE_L2 , LABEL_TYPE_L3 , LABEL_TYPE_AAP ,
  LABEL_TYPE_SERVICE_VLAN , LABEL_TYPE_MAX
}
 
enum  ProxyArpMode { PROXY_ARP_NONE , PROXY_ARP_UNRESTRICTED , PROXY_ARP_INVALID }
 
enum  FatFlowIgnoreAddressType {
  IGNORE_SOURCE = 1 , IGNORE_ADDRESS_MIN_VAL = IGNORE_SOURCE , IGNORE_DESTINATION , IGNORE_NONE ,
  IGNORE_ADDRESS_MAX_VAL = IGNORE_NONE
}
 
enum  FatFlowPrefixAggregateType {
  AGGREGATE_NONE = 0 , AGGREGATE_PREFIX_MIN_VAL = AGGREGATE_NONE , AGGREGATE_DST_IPV6 , AGGREGATE_SRC_IPV6 ,
  AGGREGATE_SRC_DST_IPV6 , AGGREGATE_DST_IPV4 , AGGREGATE_SRC_IPV4 , AGGREGATE_SRC_DST_IPV4 ,
  AGGREGATE_PREFIX_MAX_VAL = AGGREGATE_SRC_DST_IPV4
}
 
enum  HbsIntfType { HBS_INTF_INVALID = 0 , HBS_INTF_LEFT , HBS_INTF_RIGHT , HBS_INTF_MGMT }
 
enum  Trace {
  ADD , DEL , ACTIVATED_IPV4 , ACTIVATED_IPV6 ,
  ACTIVATED_L2 , DEACTIVATED_IPV4 , DEACTIVATED_IPV6 , DEACTIVATED_L2 ,
  FLOATING_IP_CHANGE , SERVICE_CHANGE , VMI_REUSE , VRF_REUSE
}
 
enum  ServiceMode { BRIDGE_MODE , ROUTED_MODE , ROUTED_NAT_MODE , SERVICE_MODE_ERROR }
 
typedef std::map< IpAddress, MetaDataIp * > MetaDataIpMap
 
typedef std::set< HealthCheckInstanceBase * > HealthCheckInstanceSet
 
typedef std::set< FloatingIp, FloatingIp > FloatingIpSet
 
typedef std::set< AliasIp, AliasIp > AliasIpSet
 
typedef std::set< ServiceVlan, ServiceVlan > ServiceVlanSet
 
typedef std::set< StaticRoute, StaticRoute > StaticRouteSet
 
typedef std::set< AllowedAddressPair, AllowedAddressPair > AllowedAddressPairSet
 
typedef std::set< SecurityGroupEntry, SecurityGroupEntry > SecurityGroupEntrySet
 
typedef std::vector< boost::uuids::uuid > SecurityGroupUuidList
 
typedef std::set< TagEntry, TagEntry > TagEntrySet
 
typedef std::vector< boost::uuids::uuid > TagGroupUuidList
 
typedef std::set< VrfAssignRule, VrfAssignRule > VrfAssignRuleSet
 
typedef std::set< InstanceIp, InstanceIp > InstanceIpSet
 
typedef std::set< LearntMacIp, LearntMacIp > LearntMacIpSet
 
typedef std::map< std::string, FatFlowIgnoreAddressType > IgnoreAddressMap
 
typedef std::set< FatFlowEntry, FatFlowEntry > FatFlowEntrySet
 
typedef std::set< BridgeDomain, BridgeDomain > BridgeDomainEntrySet
 
typedef std::set< VmiReceiveRoute, VmiReceiveRoute > VmiReceiveRouteSet
 
- Public Types inherited from Interface
enum  Type {
  INVALID , PHYSICAL , REMOTE_PHYSICAL , LOGICAL ,
  VM_INTERFACE , INET , PACKET
}
 
enum  Trace {
  ADD , DEL , ACTIVATED , DEACTIVATED ,
  FLOATING_IP_CHANGE , SERVICE_CHANGE
}
 
enum  MirrorDirection { MIRROR_RX_TX , MIRROR_RX , MIRROR_TX , UNKNOWN }
 
enum  Transport {
  TRANSPORT_INVALID , TRANSPORT_VIRTUAL , TRANSPORT_ETHERNET , TRANSPORT_SOCKET ,
  TRANSPORT_PMD
}
 
- Public Types inherited from AgentDBEntry
typedef boost::intrusive_ptr< AgentDBEntry > AgentDBEntyRef
 
- Public Types inherited from DBEntryBase
typedef DBTableBase::ListenerId ListenerId
 
typedef std::unique_ptr< DBRequestKey > KeyPtr
 

Public Member Functions

 VmInterface (const boost::uuids::uuid &uuid, const std::string &name, bool os_oper_state, const boost::uuids::uuid &logical_router_uuid)
 
 VmInterface (const boost::uuids::uuid &uuid, const std::string &name, const Ip4Address &addr, const MacAddress &mac, const std::string &vm_name, const boost::uuids::uuid &vm_project_uuid, uint16_t tx_vlan_id, uint16_t rx_vlan_id, Interface *parent, const Ip6Address &addr6, DeviceType dev_type, VmiType vmi_type, uint8_t vhostuser_mode, bool os_oper_state, const boost::uuids::uuid &logical_router_uuid)
 
virtual ~VmInterface ()
 
virtual bool CmpInterface (const DBEntry &rhs) const
 
virtual void GetOsParams (Agent *agent)
 
void SendTrace (const AgentDBTable *table, Trace event) const
 
bool Delete (const DBRequest *req)
 
void Add ()
 
KeyPtr GetDBRequestKey () const
 
std::string ToString () const
 
bool Resync (const InterfaceTable *table, const VmInterfaceData *data)
 
bool OnChange (VmInterfaceData *data)
 
void PostAdd ()
 
const VmEntry * vm () const
 
const VnEntry * vn () const
 
VnEntry * GetNonConstVn () const
 
const Ip4Address & primary_ip_addr () const
 
void set_primary_ip_addr (const Ip4Address &addr)
 
bool policy_enabled () const
 
const Ip4Address & subnet_bcast_addr () const
 
const Ip4Address & vm_ip_service_addr () const
 
const Ip6Address & primary_ip6_addr () const
 
const MacAddress & vm_mac () const
 
void set_vm_mac (const MacAddress &mac)
 
bool fabric_port () const
 
bool need_linklocal_ip () const
 
bool drop_new_flows () const
 
void set_device_type (VmInterface::DeviceType type)
 
void set_vmi_type (VmInterface::VmiType type)
 
VmInterface::DeviceType device_type () const
 
VmInterface::VmiType vmi_type () const
 
VmInterface::HbsIntfType hbs_intf_type () const
 
bool admin_state () const
 
const AclDBEntry * vrf_assign_acl () const
 
const Peer * peer () const
 
uint32_t ethernet_tag () const
 
Ip4Address dhcp_addr () const
 
IpAddress service_health_check_ip () const
 
const VmiEcmpLoadBalance & ecmp_load_balance () const
 
bool is_vn_qos_config () const
 
bool learning_enabled () const
 
void set_learning_enabled (bool val)
 
bool etree_leaf () const
 
void set_etree_leaf (bool val)
 
void set_hbs_intf_type (VmInterface::HbsIntfType val)
 
bool pbb_interface () const
 
void set_pbb_interface (bool val)
 
bool layer2_control_word () const
 
void set_layer2_control_word (bool val)
 
const NextHop * l3_interface_nh_no_policy () const
 
const NextHop * l2_interface_nh_no_policy () const
 
const NextHop * l2_interface_nh_policy () const
 
const std::string & cfg_name () const
 
uint16_t tx_vlan_id () const
 
uint16_t rx_vlan_id () const
 
uint8_t vhostuser_mode () const
 
const Interface * parent () const
 
bool ecmp () const
 
bool ecmp6 () const
 
Ip4Address service_ip ()
 
bool service_ip_ecmp () const
 
Ip6Address service_ip6 ()
 
bool service_ip_ecmp6 () const
 
bool flood_unknown_unicast () const
 
bool bridging () const
 
bool layer3_forwarding () const
 
void set_layer3_forwarding (bool val)
 
const std::string & vm_name () const
 
const std::string & vrf_name () const
 
const boost::uuids::uuid & vm_project_uuid () const
 
uint32_t local_preference () const
 
void SetPathPreference (PathPreference *pref, bool ecmp, const IpAddress &dependent_ip) const
 
const OperDhcpOptions & oper_dhcp_options () const
 
bool dhcp_enable_config () const
 
void set_dhcp_enable_config (bool dhcp_enable)
 
bool dhcp_enable_v6_config () const
 
void set_dhcp_enable_v6_config (bool dhcp_enable_v6)
 
bool do_dhcp_relay () const
 
bool cfg_igmp_enable () const
 
bool igmp_enabled () const
 
bool mac_ip_learning_enable () const
 
uint32_t max_flows () const
 
void set_max_flows (uint32_t val)
 
ProxyArpMode proxy_arp_mode () const
 
bool IsUnrestrictedProxyArp () const
 
int vxlan_id () const
 
void set_vxlan_id (int vxlan_id)
 
bool IsVxlanMode () const
 
uint8_t configurer () const
 
bool IsConfigurerSet (VmInterface::Configurer type)
 
void SetConfigurer (VmInterface::Configurer type)
 
void ResetConfigurer (VmInterface::Configurer type)
 
bool CanBeDeleted () const
 
const Ip4Address & subnet () const
 
const uint8_t subnet_plen () const
 
const MacAddress & GetVifMac (const Agent *) const
 
const boost::uuids::uuid & logical_interface () const
 
const MirrorEntry * mirror_entry () const
 
void set_mirror_entry (MirrorEntry *entry)
 
bool IsMirrorEnabled () const
 
Interface::MirrorDirection mirror_direction () const
 
void set_mirror_direction (Interface::MirrorDirection mirror_direction)
 
uint32_t FloatingIpCount () const
 
const FloatingIpList & floating_ip_list () const
 
bool HasFloatingIp (Address::Family family) const
 
bool HasFloatingIp () const
 
bool IsFloatingIp (const IpAddress &ip) const
 
size_t GetFloatingIpCount () const
 
const AliasIpList & alias_ip_list () const
 
VrfEntry * GetAliasIpVrf (const IpAddress &ip) const
 
size_t GetAliasIpCount () const
 
void CleanupAliasIpList ()
 
const StaticRouteList & static_route_list () const
 
const SecurityGroupEntryList & sg_list () const
 
void CopySgIdList (SecurityGroupList *sg_id_list) const
 
void CopyTagIdList (TagList *tag_id_list) const
 
const TagEntryList & tag_list () const
 
const VrfAssignRuleList & vrf_assign_rule_list () const
 
const AllowedAddressPairList & allowed_address_pair_list () const
 
const InstanceIpList & instance_ipv4_list () const
 
const InstanceIpList & instance_ipv6_list () const
 
const FatFlowList & fat_flow_list () const
 
const LearntMacIpList & learnt_mac_ip_list () const
 
bool IsFatFlowPortBased (uint8_t protocol, uint16_t port, FatFlowIgnoreAddressType *ignore_addr) const
 
bool ExcludeFromFatFlow (Address::Family family, const IpAddress &sip, const IpAddress &dip) const
 
bool MatchSrcPrefixPort (uint8_t protocol, uint16_t port, IpAddress *src_ip, FatFlowIgnoreAddressType *ignore_addr) const
 
bool MatchSrcPrefixRule (uint8_t protocol, uint16_t *sport, uint16_t *dport, bool *same_port_num, IpAddress *SrcIP, FatFlowIgnoreAddressType *ignore_addr) const
 
bool MatchDstPrefixPort (uint8_t protocol, uint16_t port, IpAddress *dst_ip, FatFlowIgnoreAddressType *ignore_addr) const
 
bool MatchDstPrefixRule (uint8_t protocol, uint16_t *sport, uint16_t *dport, bool *same_port_num, IpAddress *DstIP, FatFlowIgnoreAddressType *ignore_addr) const
 
bool MatchSrcDstPrefixPort (uint8_t protocol, uint16_t port, IpAddress *src_ip, IpAddress *dst_ip) const
 
bool MatchSrcDstPrefixRule (uint8_t protocol, uint16_t *sport, uint16_t *dport, bool *same_port_num, IpAddress *SrcIP, IpAddress *DstIP) const
 
bool IsFatFlowPrefixAggregation (bool ingress, uint8_t protocol, uint16_t *sport, uint16_t *dport, bool *same_port_num, IpAddress *SrcIP, IpAddress *DstIP, bool *is_src_prefix, bool *is_dst_prefix, FatFlowIgnoreAddressType *ignore_addr) const
 
const BridgeDomainList & bridge_domain_list () const
 
const VmiReceiveRouteList & receive_route_list () const
 
void set_subnet_bcast_addr (const Ip4Address &addr)
 
VrfEntry * forwarding_vrf () const
 
Ip4Address mdata_ip_addr () const
 
Ip6Address mdata_ip6_addr () const
 
MetaDataIp * GetMetaDataIp (const IpAddress &ip) const
 
void InsertMetaDataIpInfo (MetaDataIp *mip)
 
void DeleteMetaDataIpInfo (MetaDataIp *mip)
 
void UpdateMetaDataIpInfo ()
 
void InsertHealthCheckInstance (HealthCheckInstanceBase *hc_inst)
 
void DeleteHealthCheckInstance (HealthCheckInstanceBase *hc_inst)
 
const HealthCheckInstanceSet & hc_instance_set () const
 
bool IsHealthCheckEnabled () const
 
void UpdateInterfaceHealthCheckService ()
 
const ServiceVlanList & service_vlan_list () const
 
bool HasServiceVlan () const
 
Agent * agent () const
 
uint32_t GetServiceVlanLabel (const VrfEntry *vrf) const
 
const VrfEntry * GetServiceVlanVrf (uint16_t vlan_tag) const
 
bool OnResyncServiceVlan (VmInterfaceConfigData *data)
 
void SetServiceVlanPathPreference (PathPreference *pref, const IpAddress &service_ip) const
 
const UuidList & slo_list () const
 
const std::string GetAnalyzer () const
 
bool IsL2Active () const
 
bool IsIpv6Active () const
 
bool WaitForTraffic () const
 
bool GetInterfaceDhcpOptions (std::vector< autogen::DhcpOptionType > *options) const
 
bool GetSubnetDhcpOptions (std::vector< autogen::DhcpOptionType > *options, bool ipv6) const
 
bool GetIpamDhcpOptions (std::vector< autogen::DhcpOptionType > *options, bool ipv6) const
 
IpAddress GetServiceIp (const IpAddress &ip) const
 
IpAddress GetGatewayIp (const IpAddress &ip) const
 
bool NeedDevice () const
 
bool NeedOsStateWithoutDevice () const
 
bool IsActive () const
 
bool InstallBridgeRoutes () const
 
bool IsBareMetal () const
 
bool NeedMplsLabel () const
 
bool SgExists (const boost::uuids::uuid &id, const SgList &sg_l)
 
const MacAddress & GetIpMac (const IpAddress &, const uint8_t plen) const
 
bool MatchAapIp (const IpAddress &ip, uint8_t plen) const
 
void BuildIpStringList (Address::Family family, std::vector< std::string > *vect) const
 
uint32_t GetIsid () const
 
uint32_t GetPbbVrf () const
 
uint32_t GetPbbLabel () const
 
uint32_t label_op () const
 
void GetNextHopInfo ()
 
bool UpdatePolicySet (const Agent *agent)
 
const FirewallPolicyList & fw_policy_list () const
 
const FirewallPolicyList & fwaas_fw_policy_list () const
 
const boost::uuids::uuid & vmi_cfg_uuid () const
 
bool is_left_si () const
 
uint32_t service_mode ()
 
const boost::uuids::uuid & si_other_end_vmi () const
 
const std::string & service_intf_type () const
 
void set_service_intf_type (std::string type)
 
VmInterface * PortTuplePairedInterface () const
 
void BuildFatFlowExcludeList (FatFlowExcludeList *list) const
 
bool IsMaxMacIpLearnt () const
 
void update_flow_count (int val) const
 
uint32_t flow_count () const
 
InterfaceList parent_list () const
 
const bool & contains_new_tags () const
 
- Public Member Functions inherited from Interface
 Interface (Type type, const boost::uuids::uuid &uuid, const std::string &name, VrfEntry *vrf, bool os_oper_state, const boost::uuids::uuid &logical_router_uuid)
 
virtual ~Interface ()
 
virtual void SetKey (const DBRequestKey *key)
 
void SetPciIndex (Agent *agent, size_t index)
 
bool IsLess (const DBEntry &rhs) const
 
uint32_t vrf_id () const
 
uint32_t GetRefCount () const
 
bool DBEntrySandesh (Sandesh *sresp, std::string &name) const
 
bool IsTunnelEnabled () const
 
Type type () const
 
const boost::uuids::uuid & GetUuid () const
 
const std::string & name () const
 
VrfEntry * vrf () const
 
bool ipv4_active () const
 
bool ipv6_active () const
 
bool is_hc_active () const
 
bool metadata_ip_active () const
 
bool metadata_l2_active () const
 
bool ip_active (Address::Family family) const
 
bool l2_active () const
 
const uint32_t id () const
 
bool dhcp_enabled () const
 
bool dhcp_enabled_v6 () const
 
bool dns_enabled () const
 
uint32_t label () const
 
uint32_t l2_label () const
 
bool IsL2LabelValid (uint32_t label) const
 
uint32_t os_index () const
 
const MacAddress & mac () const
 
bool os_oper_state () const
 
bool admin_state () const
 
void set_test_oper_state (bool val)
 
void set_flow_key_nh (const NextHop *nh)
 
const NextHop * flow_key_nh () const
 
Interface::Transport transport () const
 
bool IsUveActive () const
 
const AgentQosConfig * qos_config () const
 
void UpdateOperStateOfSubIntf (const InterfaceTable *table)
 
bool NeedDefaultOsOperStateDisabled (Agent *agent) const
 
boost::optional< InterfaceOsParams::IfGuid > os_guid () const
 
const boost::uuids::uuid & logical_router_uuid () const
 
void set_logical_router_uuid (const boost::uuids::uuid &logical_router_uuid)
 
InterfaceOsParams get_os_params ()
 
- Public Member Functions inherited from AgentOperDBEntry
 AgentOperDBEntry ()
 
virtual ~AgentOperDBEntry ()
 
IFMapNode * ifmap_node () const
 
void SetIFMapNodeState (IFMapDependencyManager::IFMapNodePtr sref)
 
- Public Member Functions inherited from AgentDBEntry
 AgentDBEntry ()
 
virtual ~AgentDBEntry ()
 
void SetRefState () const
 
void ClearRefState () const
 
bool IsActive () const
 
DBState * GetAgentDBEntryState (int listener_id)
 
const DBState * GetAgentDBEntryState (int listener_id) const
 
virtual void AllocateResources (ResourceManager *resource_manager)
 
virtual void FreeResources (ResourceManager *resource_manager)
 
- Public Member Functions inherited from DBEntry
 DBEntry ()
 
virtual ~DBEntry ()
 
bool operator< (const DBEntry &rhs) const
 
- Public Member Functions inherited from DBEntryBase
 DBEntryBase ()
 
virtual ~DBEntryBase ()
 
virtual bool IsMoreSpecific (const std::string &match) const
 
virtual bool IsLessSpecific (const std::string &match) const
 
void SetState (DBTableBase *tbl_base, ListenerId listener, DBState *state)
 
void ClearState (DBTableBase *tbl_base, ListenerId listener)
 
DBState * GetState (DBTableBase *tbl_base, ListenerId listener) const
 
const DBState * GetState (const DBTableBase *tbl_base, ListenerId listener) const
 
bool is_state_empty (DBTablePartBase *tpart)
 
bool is_state_empty_unlocked (DBTablePartBase *tpart)
 
void Delete ()
 
void MarkDelete ()
 
void ClearDelete ()
 
bool IsDeleted () const
 
void set_onlist ()
 
void clear_onlist ()
 
bool is_onlist ()
 
void SetOnRemoveQ ()
 
bool IsOnRemoveQ ()
 
void ClearOnRemoveQ ()
 
void set_last_change_at (uint64_t time)
 
void set_last_change_at_to_now ()
 
const uint64_t last_change_at () const
 
const std::string last_change_at_str () const
 
void set_last_update_at (uint64_t time)
 
void set_last_update_at_to_now ()
 
const uint64_t last_update_at () const
 
DBTablePartBase * get_table_partition () const
 
void set_table_partition (DBTablePartBase *tpart)
 
DBTableBase * get_table () const
 
void Notify ()
 

Static Public Member Functions

static void NovaAdd (InterfaceTable *table, const boost::uuids::uuid &intf_uuid, const std::string &os_name, const Ip4Address &addr, const std::string &mac, const std::string &vn_name, const boost::uuids::uuid &vm_project_uuid, uint16_t tx_vlan_id, uint16_t rx_vlan_id, const std::string &parent, const Ip6Address &ipv6, uint8_t vhostuser_mode, Interface::Transport transport, uint8_t link_state)
 
static void Delete (InterfaceTable *table, const boost::uuids::uuid &intf_uuid, VmInterface::Configurer configurer)
 
static void SetIfNameReq (InterfaceTable *table, const boost::uuids::uuid &uuid, const std::string &ifname)
 
static void DeleteIfNameReq (InterfaceTable *table, const boost::uuids::uuid &uuid)
 

Static Public Attributes

static const uint32_t kInvalidVlanId = 0xFFFF
 
static const uint32_t kInvalidPmdId = 0xFFFF
 
static const uint32_t kInvalidIsid = 0xFFFFFF
 
static const uint8_t vHostUserClient = 0
 
static const uint8_t vHostUserServer = 1
 
static const uint32_t kMaxMacIpLimit = 50
 
static const char * kInterface = "interface"
 
static const char * kServiceInterface = "service-interface"
 
static const char * kInterfaceStatic = "interface-static"
 
- Static Public Attributes inherited from Interface
static const uint32_t kInvalidIndex = 0xFFFFFFFF
 

Private Member Functions

virtual void ObtainOsSpecificParams (const std::string &name, Agent *agent)
 
bool IsMetaDataL2Active () const
 
bool IsMetaDataIPActive () const
 
bool IsIpv4Active () const
 
bool PolicyEnabled () const
 
void FillV4ExcludeIp (uint64_t plen, const Ip4Address &ip, FatFlowExcludeList *list) const
 
void FillV6ExcludeIp (uint16_t plen, const IpAddress &ip, FatFlowExcludeList *list) const
 
bool CopyConfig (const InterfaceTable *table, const VmInterfaceConfigData *data, bool *sg_changed, bool *ecmp_changed, bool *local_pref_changed, bool *ecmp_load_balance_changed, bool *static_route_config_changed, bool *etree_leaf_mode_changed, bool *tag_changed)
 
void ApplyConfig (bool old_ipv4_active, bool old_l2_active, bool old_ipv6_active, const Ip4Address &old_subnet, const uint8_t old_subnet_plen)
 
void UpdateL2 ()
 
void DeleteL2 ()
 
void AddRoute (const std::string &vrf_name, const IpAddress &ip, uint32_t plen, const std::string &vn_name, bool force_policy, bool ecmp, bool is_local, bool proxy_arp, const IpAddress &service_ip, const IpAddress &dependent_ip, const CommunityList &communties, uint32_t label, const string &intf_route_type, bool is_learnt_route=false)
 
void DeleteRoute (const std::string &vrf_name, const IpAddress &ip, uint32_t plen)
 
bool OnResyncSecurityGroupList (VmInterfaceConfigData *data, bool new_ipv4_active)
 
bool ResyncIpAddress (const VmInterfaceIpAddressData *data)
 
bool ResyncOsOperState (const VmInterfaceOsOperStateData *data)
 
bool ResyncConfig (VmInterfaceConfigData *data)
 
bool CopyIpAddress (Ip4Address &addr)
 
bool CopyIp6Address (const Ip6Address &addr)
 
bool ResetVrfDelete (const InterfaceTable *table, const std::string &vrf_name)
 
void CleanupFloatingIpList ()
 
bool OnResyncStaticRoute (VmInterfaceConfigData *data, bool new_ipv4_active)
 
void AddL2InterfaceRoute (const IpAddress &ip, const MacAddress &mac, const IpAddress &dependent_ip) const
 
void DeleteL2InterfaceRoute (const VrfEntry *vrf, uint32_t ethernet_tag, const IpAddress &ip, const MacAddress &mac) const
 
bool UpdateIsHealthCheckActive ()
 
void CopyEcmpLoadBalance (EcmpLoadBalance &ecmp_load_balance)
 
bool UpdateState (const VmInterfaceState *attr, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
 
bool DeleteState (VmInterfaceState *attr)
 
void SetInterfacesDropNewFlows (bool drop_new_flows) const
 
bool copyMacIpData (const VmInterfaceLearntMacIpData *data)
 
 DISALLOW_COPY_AND_ASSIGN (VmInterface)
 

Static Private Member Functions

static IgnoreAddressMap InitIgnoreAddressMap ()
 

Private Attributes

VmEntryBackRef vm_
 
VnEntryRef vn_
 
Ip4Address primary_ip_addr_
 
Ip4Address subnet_bcast_addr_
 
Ip6Address primary_ip6_addr_
 
MacAddress vm_mac_
 
bool policy_enabled_
 
MirrorEntryRef mirror_entry_
 
Interface::MirrorDirection mirror_direction_
 
std::string cfg_name_
 
bool fabric_port_
 
bool need_linklocal_ip_
 
bool drop_new_flows_
 
bool drop_new_flows_vmi_
 
bool dhcp_enable_
 
bool dhcp_enable_v6_
 
bool do_dhcp_relay_
 
ProxyArpMode proxy_arp_mode_
 
std::string vm_name_
 
std::string vrf_name_
 
boost::uuids::uuid vm_project_uuid_
 
int vxlan_id_
 
bool bridging_
 
bool layer3_forwarding_
 
bool flood_unknown_unicast_
 
bool mac_set_
 
bool ecmp_
 
bool ecmp6_
 
Ip4Address service_ip_
 
bool service_ip_ecmp_
 
Ip6Address service_ip6_
 
bool service_ip_ecmp6_
 
bool disable_policy_
 
uint16_t tx_vlan_id_
 
uint16_t rx_vlan_id_
 
InterfaceBackRef parent_
 
uint32_t local_preference_
 
OperDhcpOptions oper_dhcp_options_
 
bool cfg_igmp_enable_
 
bool igmp_enabled_
 
bool mac_ip_learning_enable_
 
uint32_t max_flows_
 
std::atomic< int > flow_count_
 
std::unique_ptr< MacVmBindingState > mac_vm_binding_state_
 
std::unique_ptr< NextHopState > nexthop_state_
 
std::unique_ptr< VrfTableLabelState > vrf_table_label_state_
 
std::unique_ptr< MetaDataIpState > metadata_ip_state_
 
std::unique_ptr< MetaDataIpState > metadata_ip6_state_
 
std::unique_ptr< ResolveRouteState > resolve_route_state_
 
std::unique_ptr< VmiRouteState > interface_route_state_
 
SecurityGroupEntryList sg_list_
 
TagEntryList tag_list_
 
FloatingIpList floating_ip_list_
 
AliasIpList alias_ip_list_
 
ServiceVlanList service_vlan_list_
 
StaticRouteList static_route_list_
 
AllowedAddressPairList allowed_address_pair_list_
 
InstanceIpList instance_ipv4_list_
 
InstanceIpList instance_ipv6_list_
 
FatFlowList fat_flow_list_
 
BridgeDomainList bridge_domain_list_
 
VrfAssignRuleList vrf_assign_rule_list_
 
VmiReceiveRouteList receive_route_list_
 
LearntMacIpList learnt_mac_ip_list_
 
std::unique_ptr< LocalVmPortPeer > peer_
 
Ip4Address vm_ip_service_addr_
 
VmInterface::DeviceType device_type_
 
VmInterface::VmiType vmi_type_
 
VmInterface::HbsIntfType hbs_intf_type_
 
uint8_t configurer_
 
Ip4Address subnet_
 
uint8_t subnet_plen_
 
int ethernet_tag_
 
boost::uuids::uuid logical_interface_
 
Ip4Address nova_ip_addr_
 
Ip6Address nova_ip6_addr_
 
Ip4Address dhcp_addr_
 
MetaDataIpMap metadata_ip_map_
 
HealthCheckInstanceSet hc_instance_set_
 
VmiEcmpLoadBalance ecmp_load_balance_
 
IpAddress service_health_check_ip_
 
bool is_vn_qos_config_
 
bool learning_enabled_
 
bool etree_leaf_
 
bool pbb_interface_
 
bool layer2_control_word_
 
FirewallPolicyList fw_policy_list_
 
FirewallPolicyList fwaas_fw_policy_list_
 
UuidList slo_list_
 
VrfEntryRef forwarding_vrf_
 
uint8_t vhostuser_mode_
 
bool is_left_si_
 
uint32_t service_mode_
 
boost::uuids::uuid si_other_end_vmi_
 
boost::uuids::uuid vmi_cfg_uuid_
 
std::string service_intf_type_
 
InterfaceList parent_list_
 
bool contains_new_tags_
 

Static Private Attributes

static IgnoreAddressMap fatflow_ignore_addr_map_
 

Friends

struct VmInterfaceConfigData
 
struct VmInterfaceNovaData
 
struct VmInterfaceIpAddressData
 
struct VmInterfaceOsOperStateData
 
struct VmInterfaceMirrorData
 
struct VmInterfaceGlobalVrouterData
 
struct VmInterfaceHealthCheckData
 
struct VmInterfaceNewFlowDropData
 
struct ResolveRouteState
 
struct VmiRouteState
 
struct VmInterfaceLearntMacIpData
 

Additional Inherited Members

- Public Attributes inherited from DBEntryBase
boost::intrusive::list_member_hook chg_list_
 
- Protected Member Functions inherited from Interface
void SetItfSandeshData (ItfSandeshData &data) const
 
- Protected Attributes inherited from Interface
Type type_
 
boost::uuids::uuid uuid_
 
VrfEntryRef vrf_
 
uint32_t label_
 
uint32_t l2_label_
 
bool ipv4_active_
 
bool ipv6_active_
 
bool is_hc_active_
 
bool metadata_ip_active_
 
bool metadata_l2_active_
 
bool l2_active_
 
size_t id_
 
bool dhcp_enabled_
 
bool dhcp_enabled_v6_
 
bool dns_enabled_
 
bool admin_state_
 
bool test_oper_state_
 
NextHopConstRef flow_key_nh_
 
Transport transport_
 
AgentQosConfigConstRef qos_config_
 
struct InterfaceOsParams os_params_
 
boost::uuids::uuid logical_router_uuid_
 

Detailed Description

Definition at line 361 of file vm_interface.h.

Member Typedef Documentation

◆ AliasIpSet

Definition at line 615 of file vm_interface.h.

◆ AllowedAddressPairSet

◆ BridgeDomainEntrySet

Definition at line 1166 of file vm_interface.h.

◆ FatFlowEntrySet

Definition at line 1114 of file vm_interface.h.

◆ FloatingIpSet

Definition at line 570 of file vm_interface.h.

◆ HealthCheckInstanceSet

Definition at line 469 of file vm_interface.h.

◆ IgnoreAddressMap

Definition at line 1010 of file vm_interface.h.

◆ InstanceIpSet

Definition at line 936 of file vm_interface.h.

◆ LearntMacIpSet

Definition at line 992 of file vm_interface.h.

◆ MetaDataIpMap

Definition at line 468 of file vm_interface.h.

◆ SecurityGroupEntrySet

◆ SecurityGroupUuidList

Definition at line 795 of file vm_interface.h.

◆ ServiceVlanSet

Definition at line 667 of file vm_interface.h.

◆ StaticRouteSet

Definition at line 704 of file vm_interface.h.

◆ TagEntrySet

Definition at line 831 of file vm_interface.h.

◆ TagGroupUuidList

Definition at line 832 of file vm_interface.h.

◆ VmiReceiveRouteSet

Definition at line 1206 of file vm_interface.h.

◆ VrfAssignRuleSet

Definition at line 867 of file vm_interface.h.

Member Enumeration Documentation

◆ Configurer

Enumerator
INSTANCE_MSG 
CONFIG 

Definition at line 375 of file vm_interface.h.

◆ DeviceType

Enumerator
DEVICE_TYPE_INVALID 
VM_ON_TAP 
VM_VLAN_ON_VMI 
VM_PHYSICAL_VLAN 
VM_PHYSICAL_MAC 
TOR 
LOCAL_DEVICE 
REMOTE_VM_VLAN_ON_VMI 
VM_SRIOV 
VMI_ON_LR 

Definition at line 381 of file vm_interface.h.

◆ FatFlowIgnoreAddressType

Enumerator
IGNORE_SOURCE 
IGNORE_ADDRESS_MIN_VAL 
IGNORE_DESTINATION 
IGNORE_NONE 
IGNORE_ADDRESS_MAX_VAL 

Definition at line 436 of file vm_interface.h.

◆ FatFlowPrefixAggregateType

Enumerator
AGGREGATE_NONE 
AGGREGATE_PREFIX_MIN_VAL 
AGGREGATE_DST_IPV6 
AGGREGATE_SRC_IPV6 
AGGREGATE_SRC_DST_IPV6 
AGGREGATE_DST_IPV4 
AGGREGATE_SRC_IPV4 
AGGREGATE_SRC_DST_IPV4 
AGGREGATE_PREFIX_MAX_VAL 

Definition at line 449 of file vm_interface.h.

◆ HbsIntfType

Enumerator
HBS_INTF_INVALID 
HBS_INTF_LEFT 
HBS_INTF_RIGHT 
HBS_INTF_MGMT 

Definition at line 461 of file vm_interface.h.

◆ LabelType

Enumerator
LABEL_TYPE_INVALID 
LABEL_TYPE_L2 
LABEL_TYPE_L3 
LABEL_TYPE_AAP 
LABEL_TYPE_SERVICE_VLAN 
LABEL_TYPE_MAX 

Definition at line 416 of file vm_interface.h.

◆ ProxyArpMode

Enumerator
PROXY_ARP_NONE 
PROXY_ARP_UNRESTRICTED 
PROXY_ARP_INVALID 

Definition at line 425 of file vm_interface.h.

◆ ServiceMode

Enumerator
BRIDGE_MODE 
ROUTED_MODE 
ROUTED_NAT_MODE 
SERVICE_MODE_ERROR 

Definition at line 1559 of file vm_interface.h.

◆ Trace

Enumerator
ADD 
DEL 
ACTIVATED_IPV4 
ACTIVATED_IPV6 
ACTIVATED_L2 
DEACTIVATED_IPV4 
DEACTIVATED_IPV6 
DEACTIVATED_L2 
FLOATING_IP_CHANGE 
SERVICE_CHANGE 
VMI_REUSE 
VRF_REUSE 

Definition at line 1221 of file vm_interface.h.

◆ VmiType

Enumerator
VMI_TYPE_INVALID 
INSTANCE 
SERVICE_CHAIN 
SERVICE_INSTANCE 
BAREMETAL 
GATEWAY 
REMOTE_VM 
SRIOV 
VHOST 
ROUTER 

Definition at line 401 of file vm_interface.h.

Constructor & Destructor Documentation

◆ VmInterface() [1/2]

VmInterface::VmInterface ( const boost::uuids::uuid &  uuid,
const std::string &  name,
bool  os_oper_state,
const boost::uuids::uuid &  logical_router_uuid 
)

Definition at line 49 of file vm_interface.cc.

◆ VmInterface() [2/2]

VmInterface::VmInterface ( const boost::uuids::uuid &  uuid,
const std::string &  name,
const Ip4Address &  addr,
const MacAddress &  mac,
const std::string &  vm_name,
const boost::uuids::uuid &  vm_project_uuid,
uint16_t  tx_vlan_id,
uint16_t  rx_vlan_id,
Interface *  parent,
const Ip6Address &  addr6,
DeviceType  dev_type,
VmiType  vmi_type,
uint8_t  vhostuser_mode,
bool  os_oper_state,
const boost::uuids::uuid &  logical_router_uuid 
)

Definition at line 100 of file vm_interface.cc.

◆ ~VmInterface()

VmInterface::~VmInterface ( )
virtual

Definition at line 157 of file vm_interface.cc.

Member Function Documentation

◆ Add()

void VmInterface::Add ( )
virtual

Reimplemented from Interface.

Definition at line 195 of file vm_interface.cc.

◆ AddL2InterfaceRoute()

void VmInterface::AddL2InterfaceRoute ( const IpAddress &  ip,
const MacAddress &  mac,
const IpAddress &  dependent_ip 
) const
private

Definition at line 400 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ AddRoute()

void VmInterface::AddRoute ( const std::string &  vrf_name,
const IpAddress &  ip,
uint32_t  plen,
const std::string &  vn_name,
bool  force_policy,
bool  ecmp,
bool  is_local,
bool  proxy_arp,
const IpAddress &  service_ip,
const IpAddress &  dependent_ip,
const CommunityList &  communties,
uint32_t  label,
const string &  intf_route_type,
bool  is_learnt_route = false 
)
private

Definition at line 448 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ admin_state()

bool VmInterface::admin_state ( ) const
inline

Definition at line 1284 of file vm_interface.h.

◆ agent()

Agent* VmInterface::agent ( ) const
inline

Definition at line 1498 of file vm_interface.h.

Here is the call graph for this function:

◆ alias_ip_list()

const AliasIpList& VmInterface::alias_ip_list ( ) const
inline

Definition at line 1395 of file vm_interface.h.

◆ allowed_address_pair_list()

const AllowedAddressPairList& VmInterface::allowed_address_pair_list ( ) const
inline

Definition at line 1419 of file vm_interface.h.

◆ ApplyConfig()

void VmInterface::ApplyConfig ( bool  old_ipv4_active,
bool  old_l2_active,
bool  old_ipv6_active,
const Ip4Address &  old_subnet,
const uint8_t  old_subnet_plen 
)
private

Definition at line 380 of file vm_interface.cc.

Here is the call graph for this function:

◆ bridge_domain_list()

const BridgeDomainList& VmInterface::bridge_domain_list ( ) const
inline

Definition at line 1464 of file vm_interface.h.

◆ bridging()

bool VmInterface::bridging ( ) const
inline

Definition at line 1331 of file vm_interface.h.

◆ BuildFatFlowExcludeList()

void VmInterface::BuildFatFlowExcludeList ( VmInterface::FatFlowExcludeList *  list) const

Definition at line 1338 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ BuildIpStringList()

void VmInterface::BuildIpStringList ( Address::Family  family,
std::vector< std::string > *  vect 
) const

Definition at line 1407 of file vm_interface_utils.cc.

◆ CanBeDeleted()

bool VmInterface::CanBeDeleted ( ) const
inline

Definition at line 1369 of file vm_interface.h.

◆ cfg_igmp_enable()

bool VmInterface::cfg_igmp_enable ( ) const
inline

Definition at line 1351 of file vm_interface.h.

◆ cfg_name()

const std::string& VmInterface::cfg_name ( ) const
inline

Definition at line 1312 of file vm_interface.h.

◆ CleanupAliasIpList()

void VmInterface::CleanupAliasIpList ( )

Definition at line 2325 of file vm_interface.cc.

◆ CleanupFloatingIpList()

void VmInterface::CleanupFloatingIpList ( )
private

Definition at line 1980 of file vm_interface.cc.

Here is the call graph for this function:

◆ CmpInterface()

bool VmInterface::CmpInterface ( const DBEntry &  rhs) const
virtual

Implements Interface.

Definition at line 177 of file vm_interface.cc.

Here is the call graph for this function:

◆ configurer()

uint8_t VmInterface::configurer ( ) const
inline

Definition at line 1365 of file vm_interface.h.

◆ contains_new_tags()

const bool& VmInterface::contains_new_tags ( ) const
inline

Definition at line 1600 of file vm_interface.h.

◆ CopyConfig()

bool VmInterface::CopyConfig ( const InterfaceTable *  table,
const VmInterfaceConfigData *  data,
bool *  sg_changed,
bool *  ecmp_changed,
bool *  local_pref_changed,
bool *  ecmp_load_balance_changed,
bool *  static_route_config_changed,
bool *  etree_leaf_mode_changed,
bool *  tag_changed 
)
private

Definition at line 264 of file vm_interface_request.cc.

Here is the call graph for this function:

◆ CopyEcmpLoadBalance()

void VmInterface::CopyEcmpLoadBalance ( EcmpLoadBalance &  ecmp_load_balance)
private

Definition at line 388 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ CopyIp6Address()

bool VmInterface::CopyIp6Address ( const Ip6Address &  addr)
private

Definition at line 246 of file vm_interface_request.cc.

◆ CopyIpAddress()

bool VmInterface::CopyIpAddress ( Ip4Address &  addr)
private

Definition at line 1485 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ copyMacIpData()

bool VmInterface::copyMacIpData ( const VmInterfaceLearntMacIpData *  data)
private

Definition at line 1263 of file vm_interface_request.cc.

Here is the call graph for this function:

◆ CopySgIdList()

void VmInterface::CopySgIdList ( SecurityGroupList *  sg_id_list) const

Definition at line 664 of file vm_interface_utils.cc.

◆ CopyTagIdList()

void VmInterface::CopyTagIdList ( TagList *  tag_id_list) const

Definition at line 3468 of file vm_interface.cc.

◆ Delete() [1/2]

bool VmInterface::Delete ( const DBRequest *  req)
virtual

Reimplemented from Interface.

Definition at line 199 of file vm_interface.cc.

Here is the call graph for this function:

◆ Delete() [2/2]

void VmInterface::Delete ( InterfaceTable *  table,
const boost::uuids::uuid &  intf_uuid,
VmInterface::Configurer  configurer 
)
static

Definition at line 1009 of file vm_interface_request.cc.

Here is the call graph for this function:

◆ DeleteHealthCheckInstance()

void VmInterface::DeleteHealthCheckInstance ( HealthCheckInstanceBase *  hc_inst)

Definition at line 743 of file vm_interface_utils.cc.

◆ DeleteIfNameReq()

void VmInterface::DeleteIfNameReq ( InterfaceTable *  table,
const boost::uuids::uuid &  uuid 
)
static

Definition at line 1292 of file vm_interface_request.cc.

Here is the call graph for this function:

◆ DeleteL2()

void VmInterface::DeleteL2 ( )
private

◆ DeleteL2InterfaceRoute()

void VmInterface::DeleteL2InterfaceRoute ( const VrfEntry *  vrf,
uint32_t  ethernet_tag,
const IpAddress &  ip,
const MacAddress &  mac 
) const
private

Definition at line 433 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ DeleteMetaDataIpInfo()

void VmInterface::DeleteMetaDataIpInfo ( MetaDataIp *  mip)

Definition at line 1470 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ DeleteRoute()

void VmInterface::DeleteRoute ( const std::string &  vrf_name,
const IpAddress &  ip,
uint32_t  plen 
)
private

Definition at line 487 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ DeleteState()

bool VmInterface::DeleteState ( VmInterfaceState *  attr)
private

Definition at line 566 of file vm_interface.cc.

Here is the call graph for this function:

◆ device_type()

VmInterface::DeviceType VmInterface::device_type ( ) const
inline

Definition at line 1281 of file vm_interface.h.

◆ dhcp_addr()

Ip4Address VmInterface::dhcp_addr ( ) const
inline

Definition at line 1290 of file vm_interface.h.

◆ dhcp_enable_config()

bool VmInterface::dhcp_enable_config ( ) const
inline

Definition at line 1345 of file vm_interface.h.

◆ dhcp_enable_v6_config()

bool VmInterface::dhcp_enable_v6_config ( ) const
inline

Definition at line 1347 of file vm_interface.h.

◆ DISALLOW_COPY_AND_ASSIGN()

VmInterface::DISALLOW_COPY_AND_ASSIGN ( VmInterface  )
private

◆ do_dhcp_relay()

bool VmInterface::do_dhcp_relay ( ) const
inline

Definition at line 1349 of file vm_interface.h.

◆ drop_new_flows()

bool VmInterface::drop_new_flows ( ) const
inline

Definition at line 1278 of file vm_interface.h.

◆ ecmp()

bool VmInterface::ecmp ( ) const
inline

Definition at line 1324 of file vm_interface.h.

◆ ecmp6()

bool VmInterface::ecmp6 ( ) const
inline

Definition at line 1325 of file vm_interface.h.

◆ ecmp_load_balance()

const VmiEcmpLoadBalance& VmInterface::ecmp_load_balance ( ) const
inline

Definition at line 1292 of file vm_interface.h.

◆ ethernet_tag()

uint32_t VmInterface::ethernet_tag ( ) const
inline

Definition at line 1289 of file vm_interface.h.

◆ etree_leaf()

bool VmInterface::etree_leaf ( ) const
inline

Definition at line 1298 of file vm_interface.h.

◆ ExcludeFromFatFlow()

bool VmInterface::ExcludeFromFatFlow ( Address::Family  family,
const IpAddress &  sip,
const IpAddress &  dip 
) const

Definition at line 1271 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ fabric_port()

bool VmInterface::fabric_port ( ) const
inline

Definition at line 1276 of file vm_interface.h.

◆ fat_flow_list()

const FatFlowList& VmInterface::fat_flow_list ( ) const
inline

Definition at line 1431 of file vm_interface.h.

◆ FillV4ExcludeIp()

void VmInterface::FillV4ExcludeIp ( uint64_t  plen,
const Ip4Address &  ip,
VmInterface::FatFlowExcludeList *  list 
) const
private

Definition at line 1318 of file vm_interface_utils.cc.

◆ FillV6ExcludeIp()

void VmInterface::FillV6ExcludeIp ( uint16_t  plen,
const IpAddress &  ip,
VmInterface::FatFlowExcludeList *  list 
) const
private

Definition at line 1327 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ floating_ip_list()

const FloatingIpList& VmInterface::floating_ip_list ( ) const
inline

Definition at line 1389 of file vm_interface.h.

◆ FloatingIpCount()

uint32_t VmInterface::FloatingIpCount ( ) const
inline

Definition at line 1388 of file vm_interface.h.

◆ flood_unknown_unicast()

bool VmInterface::flood_unknown_unicast ( ) const
inline

Definition at line 1330 of file vm_interface.h.

◆ flow_count()

uint32_t VmInterface::flow_count ( ) const
inline

Definition at line 1598 of file vm_interface.h.

◆ forwarding_vrf()

VrfEntry* VmInterface::forwarding_vrf ( ) const
inline

Definition at line 1476 of file vm_interface.h.

◆ fw_policy_list()

const FirewallPolicyList& VmInterface::fw_policy_list ( ) const
inline

Definition at line 1548 of file vm_interface.h.

◆ fwaas_fw_policy_list()

const FirewallPolicyList& VmInterface::fwaas_fw_policy_list ( ) const
inline

Definition at line 1551 of file vm_interface.h.

◆ GetAliasIpCount()

size_t VmInterface::GetAliasIpCount ( ) const
inline

Definition at line 1399 of file vm_interface.h.

◆ GetAliasIpVrf()

VrfEntry * VmInterface::GetAliasIpVrf ( const IpAddress &  ip) const

Definition at line 721 of file vm_interface_utils.cc.

◆ GetAnalyzer()

const string VmInterface::GetAnalyzer ( ) const

Definition at line 798 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ GetDBRequestKey()

DBEntryBase::KeyPtr VmInterface::GetDBRequestKey ( ) const
virtual

Implements Interface.

Definition at line 190 of file vm_interface.cc.

Here is the call graph for this function:

◆ GetFloatingIpCount()

size_t VmInterface::GetFloatingIpCount ( ) const
inline

Definition at line 1393 of file vm_interface.h.

◆ GetGatewayIp()

IpAddress VmInterface::GetGatewayIp ( const IpAddress &  ip) const

Definition at line 641 of file vm_interface_utils.cc.

◆ GetInterfaceDhcpOptions()

bool VmInterface::GetInterfaceDhcpOptions ( std::vector< autogen::DhcpOptionType > *  options) const

Definition at line 497 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ GetIpamDhcpOptions()

bool VmInterface::GetIpamDhcpOptions ( std::vector< autogen::DhcpOptionType > *  options,
bool  ipv6 
) const

Definition at line 532 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ GetIpMac()

const MacAddress & VmInterface::GetIpMac ( const IpAddress &  ip,
const uint8_t  plen 
) const

Definition at line 553 of file vm_interface_utils.cc.

◆ GetIsid()

uint32_t VmInterface::GetIsid ( ) const

Definition at line 1423 of file vm_interface_utils.cc.

◆ GetMetaDataIp()

MetaDataIp * VmInterface::GetMetaDataIp ( const IpAddress &  ip) const

Definition at line 1454 of file vm_interface_utils.cc.

◆ GetNextHopInfo()

void VmInterface::GetNextHopInfo ( )

Definition at line 1203 of file vm_interface.cc.

Here is the call graph for this function:

◆ GetNonConstVn()

VnEntry* VmInterface::GetNonConstVn ( ) const
inline

Definition at line 1266 of file vm_interface.h.

◆ GetOsParams()

void VmInterface::GetOsParams ( Agent *  agent)
virtual

Reimplemented from Interface.

Definition at line 139 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ GetPbbLabel()

uint32_t VmInterface::GetPbbLabel ( ) const

Definition at line 1441 of file vm_interface_utils.cc.

◆ GetPbbVrf()

uint32_t VmInterface::GetPbbVrf ( ) const

Definition at line 1431 of file vm_interface_utils.cc.

◆ GetServiceIp()

IpAddress VmInterface::GetServiceIp ( const IpAddress &  ip) const

Definition at line 614 of file vm_interface_utils.cc.

◆ GetServiceVlanLabel()

uint32_t VmInterface::GetServiceVlanLabel ( const VrfEntry *  vrf) const

Definition at line 675 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ GetServiceVlanVrf()

const VrfEntry * VmInterface::GetServiceVlanVrf ( uint16_t  vlan_tag) const

Definition at line 686 of file vm_interface_utils.cc.

◆ GetSubnetDhcpOptions()

bool VmInterface::GetSubnetDhcpOptions ( std::vector< autogen::DhcpOptionType > *  options,
bool  ipv6 
) const

Definition at line 508 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ GetVifMac()

const MacAddress & VmInterface::GetVifMac ( const Agent *  agent) const

Definition at line 1365 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ HasFloatingIp() [1/2]

bool VmInterface::HasFloatingIp ( ) const

Definition at line 705 of file vm_interface_utils.cc.

◆ HasFloatingIp() [2/2]

bool VmInterface::HasFloatingIp ( Address::Family  family) const

Definition at line 697 of file vm_interface_utils.cc.

◆ HasServiceVlan()

bool VmInterface::HasServiceVlan ( ) const
inline

Definition at line 1496 of file vm_interface.h.

◆ hbs_intf_type()

VmInterface::HbsIntfType VmInterface::hbs_intf_type ( ) const
inline

Definition at line 1283 of file vm_interface.h.

◆ hc_instance_set()

const VmInterface::HealthCheckInstanceSet & VmInterface::hc_instance_set ( ) const

Definition at line 756 of file vm_interface_utils.cc.

◆ igmp_enabled()

bool VmInterface::igmp_enabled ( ) const
inline

Definition at line 1352 of file vm_interface.h.

◆ InitIgnoreAddressMap()

static IgnoreAddressMap VmInterface::InitIgnoreAddressMap ( )
inlinestaticprivate

Definition at line 1677 of file vm_interface.h.

◆ InsertHealthCheckInstance()

void VmInterface::InsertHealthCheckInstance ( HealthCheckInstanceBase *  hc_inst)

Definition at line 737 of file vm_interface_utils.cc.

◆ InsertMetaDataIpInfo()

void VmInterface::InsertMetaDataIpInfo ( MetaDataIp *  mip)

Definition at line 1463 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ InstallBridgeRoutes()

bool VmInterface::InstallBridgeRoutes ( ) const

Definition at line 1378 of file vm_interface_utils.cc.

◆ instance_ipv4_list()

const InstanceIpList& VmInterface::instance_ipv4_list ( ) const
inline

Definition at line 1423 of file vm_interface.h.

◆ instance_ipv6_list()

const InstanceIpList& VmInterface::instance_ipv6_list ( ) const
inline

Definition at line 1427 of file vm_interface.h.

◆ is_left_si()

bool VmInterface::is_left_si ( ) const
inline

Definition at line 1558 of file vm_interface.h.

◆ is_vn_qos_config()

bool VmInterface::is_vn_qos_config ( ) const
inline

Definition at line 1293 of file vm_interface.h.

◆ IsActive()

bool VmInterface::IsActive ( ) const

Definition at line 164 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ IsBareMetal()

bool VmInterface::IsBareMetal ( ) const
inline

Definition at line 1529 of file vm_interface.h.

◆ IsConfigurerSet()

bool VmInterface::IsConfigurerSet ( VmInterface::Configurer  type)

Definition at line 173 of file vm_interface.cc.

Here is the call graph for this function:

◆ IsFatFlowPortBased()

bool VmInterface::IsFatFlowPortBased ( uint8_t  protocol,
uint16_t  port,
FatFlowIgnoreAddressType *  ignore_addr 
) const

Definition at line 810 of file vm_interface_utils.cc.

◆ IsFatFlowPrefixAggregation()

bool VmInterface::IsFatFlowPrefixAggregation ( bool  ingress,
uint8_t  protocol,
uint16_t *  sport,
uint16_t *  dport,
bool *  same_port_num,
IpAddress *  SrcIP,
IpAddress *  DstIP,
bool *  is_src_prefix,
bool *  is_dst_prefix,
FatFlowIgnoreAddressType *  ignore_addr 
) const

Definition at line 1224 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ IsFloatingIp()

bool VmInterface::IsFloatingIp ( const IpAddress &  ip) const

Definition at line 709 of file vm_interface_utils.cc.

◆ IsHealthCheckEnabled()

bool VmInterface::IsHealthCheckEnabled ( ) const

Definition at line 760 of file vm_interface_utils.cc.

◆ IsIpv4Active()

bool VmInterface::IsIpv4Active ( ) const
private

Definition at line 267 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ IsIpv6Active()

bool VmInterface::IsIpv6Active ( ) const

Definition at line 291 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ IsL2Active()

bool VmInterface::IsL2Active ( ) const

Definition at line 307 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ IsMaxMacIpLearnt()

bool VmInterface::IsMaxMacIpLearnt ( ) const

Definition at line 1971 of file vm_interface.cc.

◆ IsMetaDataIPActive()

bool VmInterface::IsMetaDataIPActive ( ) const
private

Definition at line 237 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ IsMetaDataL2Active()

bool VmInterface::IsMetaDataL2Active ( ) const
private

Definition at line 259 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ IsMirrorEnabled()

bool VmInterface::IsMirrorEnabled ( ) const
inline

Definition at line 1380 of file vm_interface.h.

◆ IsUnrestrictedProxyArp()

bool VmInterface::IsUnrestrictedProxyArp ( ) const
inline

Definition at line 1357 of file vm_interface.h.

◆ IsVxlanMode()

bool VmInterface::IsVxlanMode ( ) const

Definition at line 1400 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ l2_interface_nh_no_policy()

const NextHop * VmInterface::l2_interface_nh_no_policy ( ) const

Definition at line 1184 of file vm_interface.cc.

◆ l2_interface_nh_policy()

const NextHop * VmInterface::l2_interface_nh_policy ( ) const

Definition at line 1188 of file vm_interface.cc.

◆ l3_interface_nh_no_policy()

const NextHop * VmInterface::l3_interface_nh_no_policy ( ) const

Definition at line 1180 of file vm_interface.cc.

◆ label_op()

uint32_t VmInterface::label_op ( ) const

Definition at line 1192 of file vm_interface.cc.

Here is the call graph for this function:

◆ layer2_control_word()

bool VmInterface::layer2_control_word ( ) const
inline

Definition at line 1305 of file vm_interface.h.

◆ layer3_forwarding()

bool VmInterface::layer3_forwarding ( ) const
inline

Definition at line 1332 of file vm_interface.h.

◆ learning_enabled()

bool VmInterface::learning_enabled ( ) const
inline

Definition at line 1295 of file vm_interface.h.

◆ learnt_mac_ip_list()

const LearntMacIpList& VmInterface::learnt_mac_ip_list ( ) const
inline

Definition at line 1434 of file vm_interface.h.

◆ local_preference()

uint32_t VmInterface::local_preference ( ) const
inline

Definition at line 1338 of file vm_interface.h.

◆ logical_interface()

const boost::uuids::uuid& VmInterface::logical_interface ( ) const
inline

Definition at line 1374 of file vm_interface.h.

◆ mac_ip_learning_enable()

bool VmInterface::mac_ip_learning_enable ( ) const
inline

Definition at line 1353 of file vm_interface.h.

◆ MatchAapIp()

bool VmInterface::MatchAapIp ( const IpAddress &  ip,
uint8_t  plen 
) const

Definition at line 580 of file vm_interface_utils.cc.

◆ MatchDstPrefixPort()

bool VmInterface::MatchDstPrefixPort ( uint8_t  protocol,
uint16_t  port,
IpAddress *  dst_ip,
FatFlowIgnoreAddressType *  ignore_addr 
) const

Definition at line 963 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ MatchDstPrefixRule()

bool VmInterface::MatchDstPrefixRule ( uint8_t  protocol,
uint16_t *  sport,
uint16_t *  dport,
bool *  same_port_num,
IpAddress *  DstIP,
FatFlowIgnoreAddressType *  ignore_addr 
) const

Definition at line 1054 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ MatchSrcDstPrefixPort()

bool VmInterface::MatchSrcDstPrefixPort ( uint8_t  protocol,
uint16_t  port,
IpAddress *  src_ip,
IpAddress *  dst_ip 
) const

Definition at line 1089 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ MatchSrcDstPrefixRule()

bool VmInterface::MatchSrcDstPrefixRule ( uint8_t  protocol,
uint16_t *  sport,
uint16_t *  dport,
bool *  same_port_num,
IpAddress *  SrcIP,
IpAddress *  DstIP 
) const

Definition at line 1190 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ MatchSrcPrefixPort()

bool VmInterface::MatchSrcPrefixPort ( uint8_t  protocol,
uint16_t  port,
IpAddress *  src_ip,
FatFlowIgnoreAddressType *  ignore_addr 
) const

Definition at line 835 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ MatchSrcPrefixRule()

bool VmInterface::MatchSrcPrefixRule ( uint8_t  protocol,
uint16_t *  sport,
uint16_t *  dport,
bool *  same_port_num,
IpAddress *  SrcIP,
FatFlowIgnoreAddressType *  ignore_addr 
) const

Definition at line 929 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ max_flows()

uint32_t VmInterface::max_flows ( ) const
inline

Definition at line 1354 of file vm_interface.h.

◆ mdata_ip6_addr()

Ip6Address VmInterface::mdata_ip6_addr ( ) const

Definition at line 1277 of file vm_interface.cc.

◆ mdata_ip_addr()

Ip4Address VmInterface::mdata_ip_addr ( ) const

Definition at line 1266 of file vm_interface.cc.

◆ mirror_direction()

Interface::MirrorDirection VmInterface::mirror_direction ( ) const
inline

Definition at line 1381 of file vm_interface.h.

◆ mirror_entry()

const MirrorEntry* VmInterface::mirror_entry ( ) const
inline

Definition at line 1378 of file vm_interface.h.

◆ need_linklocal_ip()

bool VmInterface::need_linklocal_ip ( ) const
inline

Definition at line 1277 of file vm_interface.h.

◆ NeedDevice()

bool VmInterface::NeedDevice ( ) const

Definition at line 98 of file vm_interface_utils.cc.

◆ NeedMplsLabel()

bool VmInterface::NeedMplsLabel ( ) const

◆ NeedOsStateWithoutDevice()

bool VmInterface::NeedOsStateWithoutDevice ( ) const

Definition at line 125 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ NovaAdd()

void VmInterface::NovaAdd ( InterfaceTable *  table,
const boost::uuids::uuid &  intf_uuid,
const std::string &  os_name,
const Ip4Address &  addr,
const std::string &  mac,
const std::string &  vn_name,
const boost::uuids::uuid &  vm_project_uuid,
uint16_t  tx_vlan_id,
uint16_t  rx_vlan_id,
const std::string &  parent,
const Ip6Address &  ipv6,
uint8_t  vhostuser_mode,
Interface::Transport  transport,
uint8_t  link_state 
)
static

Definition at line 985 of file vm_interface_request.cc.

Here is the call graph for this function:

◆ ObtainOsSpecificParams()

void VmInterface::ObtainOsSpecificParams ( const std::string &  name,
Agent *  agent 
)
privatevirtual

Reimplemented from Interface.

Definition at line 52 of file interface_params.cc.

Here is the call graph for this function:

◆ OnChange()

bool VmInterface::OnChange ( VmInterfaceData *  data)

Definition at line 255 of file vm_interface.cc.

Here is the call graph for this function:

◆ OnResyncSecurityGroupList()

bool VmInterface::OnResyncSecurityGroupList ( VmInterfaceConfigData *  data,
bool  new_ipv4_active 
)
private

◆ OnResyncServiceVlan()

bool VmInterface::OnResyncServiceVlan ( VmInterfaceConfigData *  data)

◆ OnResyncStaticRoute()

bool VmInterface::OnResyncStaticRoute ( VmInterfaceConfigData *  data,
bool  new_ipv4_active 
)
private

◆ oper_dhcp_options()

const OperDhcpOptions& VmInterface::oper_dhcp_options ( ) const
inline

Definition at line 1342 of file vm_interface.h.

◆ parent()

const Interface* VmInterface::parent ( ) const
inline

Definition at line 1316 of file vm_interface.h.

Here is the call graph for this function:

◆ parent_list()

InterfaceList VmInterface::parent_list ( ) const
inline

Definition at line 1599 of file vm_interface.h.

◆ pbb_interface()

bool VmInterface::pbb_interface ( ) const
inline

Definition at line 1302 of file vm_interface.h.

◆ peer()

const Peer * VmInterface::peer ( ) const

Definition at line 806 of file vm_interface_utils.cc.

◆ policy_enabled()

bool VmInterface::policy_enabled ( ) const
inline

Definition at line 1270 of file vm_interface.h.

◆ PolicyEnabled()

bool VmInterface::PolicyEnabled ( ) const
private

Definition at line 1385 of file vm_interface_utils.cc.

◆ PortTuplePairedInterface()

VmInterface * VmInterface::PortTuplePairedInterface ( ) const

Definition at line 1515 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ PostAdd()

void VmInterface::PostAdd ( )
virtual

Reimplemented from AgentDBEntry.

Definition at line 218 of file vm_interface.cc.

Here is the call graph for this function:

◆ primary_ip6_addr()

const Ip6Address& VmInterface::primary_ip6_addr ( ) const
inline

Definition at line 1273 of file vm_interface.h.

◆ primary_ip_addr()

const Ip4Address& VmInterface::primary_ip_addr ( ) const
inline

Definition at line 1267 of file vm_interface.h.

◆ proxy_arp_mode()

ProxyArpMode VmInterface::proxy_arp_mode ( ) const
inline

Definition at line 1356 of file vm_interface.h.

◆ receive_route_list()

const VmiReceiveRouteList& VmInterface::receive_route_list ( ) const
inline

Definition at line 1468 of file vm_interface.h.

◆ ResetConfigurer()

void VmInterface::ResetConfigurer ( VmInterface::Configurer  type)

Definition at line 169 of file vm_interface.cc.

Here is the call graph for this function:

◆ ResetVrfDelete()

bool VmInterface::ResetVrfDelete ( const InterfaceTable *  table,
const std::string &  vrf_name 
)
private

Definition at line 242 of file vm_interface.cc.

Here is the call graph for this function:

◆ Resync()

bool VmInterface::Resync ( const InterfaceTable *  table,
const VmInterfaceData *  data 
)

Definition at line 268 of file vm_interface.cc.

Here is the call graph for this function:

◆ ResyncConfig()

bool VmInterface::ResyncConfig ( VmInterfaceConfigData *  data)
private

◆ ResyncIpAddress()

bool VmInterface::ResyncIpAddress ( const VmInterfaceIpAddressData *  data)
private

◆ ResyncOsOperState()

bool VmInterface::ResyncOsOperState ( const VmInterfaceOsOperStateData *  data)
private

◆ rx_vlan_id()

uint16_t VmInterface::rx_vlan_id ( ) const
inline

Definition at line 1314 of file vm_interface.h.

◆ SendTrace()

void VmInterface::SendTrace ( const AgentDBTable *  table,
Trace  event 
) const
virtual

Reimplemented from Interface.

Definition at line 1525 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ service_health_check_ip()

IpAddress VmInterface::service_health_check_ip ( ) const
inline

Definition at line 1291 of file vm_interface.h.

◆ service_intf_type()

const std::string& VmInterface::service_intf_type ( ) const
inline

Definition at line 1571 of file vm_interface.h.

◆ service_ip()

Ip4Address VmInterface::service_ip ( )
inline

Definition at line 1326 of file vm_interface.h.

◆ service_ip6()

Ip6Address VmInterface::service_ip6 ( )
inline

Definition at line 1328 of file vm_interface.h.

◆ service_ip_ecmp()

bool VmInterface::service_ip_ecmp ( ) const
inline

Definition at line 1327 of file vm_interface.h.

◆ service_ip_ecmp6()

bool VmInterface::service_ip_ecmp6 ( ) const
inline

Definition at line 1329 of file vm_interface.h.

◆ service_mode()

uint32_t VmInterface::service_mode ( )
inline

Definition at line 1565 of file vm_interface.h.

◆ service_vlan_list()

const ServiceVlanList& VmInterface::service_vlan_list ( ) const
inline

Definition at line 1493 of file vm_interface.h.

◆ set_device_type()

void VmInterface::set_device_type ( VmInterface::DeviceType  type)
inline

Definition at line 1279 of file vm_interface.h.

Here is the call graph for this function:

◆ set_dhcp_enable_config()

void VmInterface::set_dhcp_enable_config ( bool  dhcp_enable)
inline

Definition at line 1346 of file vm_interface.h.

◆ set_dhcp_enable_v6_config()

void VmInterface::set_dhcp_enable_v6_config ( bool  dhcp_enable_v6)
inline

Definition at line 1348 of file vm_interface.h.

◆ set_etree_leaf()

void VmInterface::set_etree_leaf ( bool  val)
inline

Definition at line 1299 of file vm_interface.h.

◆ set_hbs_intf_type()

void VmInterface::set_hbs_intf_type ( VmInterface::HbsIntfType  val)
inline

Definition at line 1301 of file vm_interface.h.

◆ set_layer2_control_word()

void VmInterface::set_layer2_control_word ( bool  val)
inline

Definition at line 1306 of file vm_interface.h.

◆ set_layer3_forwarding()

void VmInterface::set_layer3_forwarding ( bool  val)
inline

Definition at line 1333 of file vm_interface.h.

◆ set_learning_enabled()

void VmInterface::set_learning_enabled ( bool  val)
inline

Definition at line 1296 of file vm_interface.h.

◆ set_max_flows()

void VmInterface::set_max_flows ( uint32_t  val)
inline

Definition at line 1355 of file vm_interface.h.

◆ set_mirror_direction()

void VmInterface::set_mirror_direction ( Interface::MirrorDirection  mirror_direction)
inline

Definition at line 1384 of file vm_interface.h.

Here is the call graph for this function:

◆ set_mirror_entry()

void VmInterface::set_mirror_entry ( MirrorEntry *  entry)
inline

Definition at line 1379 of file vm_interface.h.

◆ set_pbb_interface()

void VmInterface::set_pbb_interface ( bool  val)
inline

Definition at line 1303 of file vm_interface.h.

◆ set_primary_ip_addr()

void VmInterface::set_primary_ip_addr ( const Ip4Address &  addr)
inline

Definition at line 1268 of file vm_interface.h.

◆ set_service_intf_type()

void VmInterface::set_service_intf_type ( std::string  type)
inline

Definition at line 1572 of file vm_interface.h.

Here is the call graph for this function:

◆ set_subnet_bcast_addr()

void VmInterface::set_subnet_bcast_addr ( const Ip4Address &  addr)
inline

Definition at line 1472 of file vm_interface.h.

◆ set_vm_mac()

void VmInterface::set_vm_mac ( const MacAddress &  mac)
inline

Definition at line 1275 of file vm_interface.h.

Here is the call graph for this function:

◆ set_vmi_type()

void VmInterface::set_vmi_type ( VmInterface::VmiType  type)
inline

Definition at line 1280 of file vm_interface.h.

Here is the call graph for this function:

◆ set_vxlan_id()

void VmInterface::set_vxlan_id ( int  vxlan_id)
inline

Definition at line 1362 of file vm_interface.h.

Here is the call graph for this function:

◆ SetConfigurer()

void VmInterface::SetConfigurer ( VmInterface::Configurer  type)

Definition at line 165 of file vm_interface.cc.

Here is the call graph for this function:

◆ SetIfNameReq()

void VmInterface::SetIfNameReq ( InterfaceTable *  table,
const boost::uuids::uuid &  uuid,
const std::string &  ifname 
)
static

Definition at line 1282 of file vm_interface_request.cc.

Here is the call graph for this function:

◆ SetInterfacesDropNewFlows()

void VmInterface::SetInterfacesDropNewFlows ( bool  drop_new_flows) const
private

Definition at line 3513 of file vm_interface.cc.

Here is the call graph for this function:

◆ SetPathPreference()

void VmInterface::SetPathPreference ( PathPreference *  pref,
bool  ecmp,
const IpAddress &  dependent_ip 
) const

Definition at line 327 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ SetServiceVlanPathPreference()

void VmInterface::SetServiceVlanPathPreference ( PathPreference *  pref,
const IpAddress &  service_ip 
) const

Definition at line 340 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ sg_list()

const SecurityGroupEntryList& VmInterface::sg_list ( ) const
inline

Definition at line 1405 of file vm_interface.h.

◆ SgExists()

bool VmInterface::SgExists ( const boost::uuids::uuid &  id,
const SgList &  sg_l 
)

◆ si_other_end_vmi()

const boost::uuids::uuid& VmInterface::si_other_end_vmi ( ) const
inline

Definition at line 1568 of file vm_interface.h.

◆ slo_list()

const UuidList& VmInterface::slo_list ( ) const
inline

Definition at line 1507 of file vm_interface.h.

◆ static_route_list()

const StaticRouteList& VmInterface::static_route_list ( ) const
inline

Definition at line 1402 of file vm_interface.h.

◆ subnet()

const Ip4Address& VmInterface::subnet ( ) const
inline

Definition at line 1371 of file vm_interface.h.

◆ subnet_bcast_addr()

const Ip4Address& VmInterface::subnet_bcast_addr ( ) const
inline

Definition at line 1271 of file vm_interface.h.

◆ subnet_plen()

const uint8_t VmInterface::subnet_plen ( ) const
inline

Definition at line 1372 of file vm_interface.h.

◆ tag_list()

const TagEntryList& VmInterface::tag_list ( ) const
inline

Definition at line 1411 of file vm_interface.h.

◆ ToString()

string VmInterface::ToString ( ) const
virtual

Implements DBEntryBase.

Definition at line 186 of file vm_interface.cc.

Here is the call graph for this function:

◆ tx_vlan_id()

uint16_t VmInterface::tx_vlan_id ( ) const
inline

Definition at line 1313 of file vm_interface.h.

◆ update_flow_count()

void VmInterface::update_flow_count ( int  val) const

Definition at line 3480 of file vm_interface.cc.

Here is the call graph for this function:

◆ UpdateInterfaceHealthCheckService()

void VmInterface::UpdateInterfaceHealthCheckService ( )

Definition at line 766 of file vm_interface_utils.cc.

Here is the call graph for this function:

◆ UpdateIsHealthCheckActive()

bool VmInterface::UpdateIsHealthCheckActive ( )
private

Definition at line 1182 of file vm_interface_request.cc.

Here is the call graph for this function:

◆ UpdateL2()

void VmInterface::UpdateL2 ( )
private

Definition at line 543 of file vm_interface.cc.

Here is the call graph for this function:

◆ UpdateMetaDataIpInfo()

void VmInterface::UpdateMetaDataIpInfo ( )

Definition at line 1477 of file vm_interface_utils.cc.

◆ UpdatePolicySet()

bool VmInterface::UpdatePolicySet ( const Agent *  agent)

Definition at line 3423 of file vm_interface.cc.

Here is the call graph for this function:

◆ UpdateState()

bool VmInterface::UpdateState ( const VmInterfaceState *  attr,
VmInterfaceState::Op  l2_force_op,
VmInterfaceState::Op  l3_force_op 
)
private

Definition at line 559 of file vm_interface.cc.

Here is the call graph for this function:

◆ vhostuser_mode()

uint8_t VmInterface::vhostuser_mode ( ) const
inline

Definition at line 1315 of file vm_interface.h.

◆ vm()

const VmEntry* VmInterface::vm ( ) const
inline

Definition at line 1264 of file vm_interface.h.

◆ vm_ip_service_addr()

const Ip4Address& VmInterface::vm_ip_service_addr ( ) const
inline

Definition at line 1272 of file vm_interface.h.

◆ vm_mac()

const MacAddress& VmInterface::vm_mac ( ) const
inline

Definition at line 1274 of file vm_interface.h.

◆ vm_name()

const std::string& VmInterface::vm_name ( ) const
inline

Definition at line 1334 of file vm_interface.h.

◆ vm_project_uuid()

const boost::uuids::uuid& VmInterface::vm_project_uuid ( ) const
inline

Definition at line 1336 of file vm_interface.h.

◆ vmi_cfg_uuid()

const boost::uuids::uuid& VmInterface::vmi_cfg_uuid ( ) const
inline

Definition at line 1554 of file vm_interface.h.

◆ vmi_type()

VmInterface::VmiType VmInterface::vmi_type ( ) const
inline

Definition at line 1282 of file vm_interface.h.

◆ vn()

const VnEntry* VmInterface::vn ( ) const
inline

Definition at line 1265 of file vm_interface.h.

◆ vrf_assign_acl()

const AclDBEntry* VmInterface::vrf_assign_acl ( ) const
inline

Definition at line 1285 of file vm_interface.h.

◆ vrf_assign_rule_list()

const VrfAssignRuleList& VmInterface::vrf_assign_rule_list ( ) const
inline

Definition at line 1415 of file vm_interface.h.

◆ vrf_name()

const std::string& VmInterface::vrf_name ( ) const
inline

Definition at line 1335 of file vm_interface.h.

◆ vxlan_id()

int VmInterface::vxlan_id ( ) const
inline

Definition at line 1361 of file vm_interface.h.

◆ WaitForTraffic()

bool VmInterface::WaitForTraffic ( ) const

Definition at line 592 of file vm_interface_utils.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ ResolveRouteState

friend struct ResolveRouteState
friend

Definition at line 1612 of file vm_interface.h.

◆ VmInterfaceConfigData

friend struct VmInterfaceConfigData
friend

Definition at line 1604 of file vm_interface.h.

◆ VmInterfaceGlobalVrouterData

friend struct VmInterfaceGlobalVrouterData
friend

Definition at line 1609 of file vm_interface.h.

◆ VmInterfaceHealthCheckData

friend struct VmInterfaceHealthCheckData
friend

Definition at line 1610 of file vm_interface.h.

◆ VmInterfaceIpAddressData

friend struct VmInterfaceIpAddressData
friend

Definition at line 1606 of file vm_interface.h.

◆ VmInterfaceLearntMacIpData

friend struct VmInterfaceLearntMacIpData
friend

Definition at line 1614 of file vm_interface.h.

◆ VmInterfaceMirrorData

friend struct VmInterfaceMirrorData
friend

Definition at line 1608 of file vm_interface.h.

◆ VmInterfaceNewFlowDropData

friend struct VmInterfaceNewFlowDropData
friend

Definition at line 1611 of file vm_interface.h.

◆ VmInterfaceNovaData

friend struct VmInterfaceNovaData
friend

Definition at line 1605 of file vm_interface.h.

◆ VmInterfaceOsOperStateData

friend struct VmInterfaceOsOperStateData
friend

Definition at line 1607 of file vm_interface.h.

◆ VmiRouteState

friend struct VmiRouteState
friend

Definition at line 1613 of file vm_interface.h.

Member Data Documentation

◆ alias_ip_list_

AliasIpList VmInterface::alias_ip_list_
private

Definition at line 1763 of file vm_interface.h.

◆ allowed_address_pair_list_

AllowedAddressPairList VmInterface::allowed_address_pair_list_
private

Definition at line 1766 of file vm_interface.h.

◆ bridge_domain_list_

BridgeDomainList VmInterface::bridge_domain_list_
private

Definition at line 1770 of file vm_interface.h.

◆ bridging_

bool VmInterface::bridging_
private

Definition at line 1720 of file vm_interface.h.

◆ cfg_igmp_enable_

bool VmInterface::cfg_igmp_enable_
private

Definition at line 1743 of file vm_interface.h.

◆ cfg_name_

std::string VmInterface::cfg_name_
private

Definition at line 1700 of file vm_interface.h.

◆ configurer_

uint8_t VmInterface::configurer_
private

Definition at line 1781 of file vm_interface.h.

◆ contains_new_tags_

bool VmInterface::contains_new_tags_
private

Definition at line 1819 of file vm_interface.h.

◆ device_type_

VmInterface::DeviceType VmInterface::device_type_
private

Definition at line 1778 of file vm_interface.h.

◆ dhcp_addr_

Ip4Address VmInterface::dhcp_addr_
private

Definition at line 1789 of file vm_interface.h.

◆ dhcp_enable_

bool VmInterface::dhcp_enable_
private

Definition at line 1708 of file vm_interface.h.

◆ dhcp_enable_v6_

bool VmInterface::dhcp_enable_v6_
private

Definition at line 1709 of file vm_interface.h.

◆ disable_policy_

bool VmInterface::disable_policy_
private

Definition at line 1734 of file vm_interface.h.

◆ do_dhcp_relay_

bool VmInterface::do_dhcp_relay_
private

Definition at line 1711 of file vm_interface.h.

◆ drop_new_flows_

bool VmInterface::drop_new_flows_
private

Definition at line 1703 of file vm_interface.h.

◆ drop_new_flows_vmi_

bool VmInterface::drop_new_flows_vmi_
mutableprivate

Definition at line 1704 of file vm_interface.h.

◆ ecmp6_

bool VmInterface::ecmp6_
private

Definition at line 1725 of file vm_interface.h.

◆ ecmp_

bool VmInterface::ecmp_
private

Definition at line 1724 of file vm_interface.h.

◆ ecmp_load_balance_

VmiEcmpLoadBalance VmInterface::ecmp_load_balance_
private

Definition at line 1792 of file vm_interface.h.

◆ ethernet_tag_

int VmInterface::ethernet_tag_
private

Definition at line 1784 of file vm_interface.h.

◆ etree_leaf_

bool VmInterface::etree_leaf_
private

Definition at line 1796 of file vm_interface.h.

◆ fabric_port_

bool VmInterface::fabric_port_
private

Definition at line 1701 of file vm_interface.h.

◆ fat_flow_list_

FatFlowList VmInterface::fat_flow_list_
private

Definition at line 1769 of file vm_interface.h.

◆ fatflow_ignore_addr_map_

VmInterface::IgnoreAddressMap VmInterface::fatflow_ignore_addr_map_
staticprivate
Initial value:
=
static IgnoreAddressMap InitIgnoreAddressMap()

Definition at line 1690 of file vm_interface.h.

◆ floating_ip_list_

FloatingIpList VmInterface::floating_ip_list_
private

Definition at line 1762 of file vm_interface.h.

◆ flood_unknown_unicast_

bool VmInterface::flood_unknown_unicast_
private

Definition at line 1722 of file vm_interface.h.

◆ flow_count_

std::atomic<int> VmInterface::flow_count_
mutableprivate

Definition at line 1748 of file vm_interface.h.

◆ forwarding_vrf_

VrfEntryRef VmInterface::forwarding_vrf_
private

Definition at line 1803 of file vm_interface.h.

◆ fw_policy_list_

FirewallPolicyList VmInterface::fw_policy_list_
private

Definition at line 1800 of file vm_interface.h.

◆ fwaas_fw_policy_list_

FirewallPolicyList VmInterface::fwaas_fw_policy_list_
private

Definition at line 1801 of file vm_interface.h.

◆ hbs_intf_type_

VmInterface::HbsIntfType VmInterface::hbs_intf_type_
private

Definition at line 1780 of file vm_interface.h.

◆ hc_instance_set_

HealthCheckInstanceSet VmInterface::hc_instance_set_
private

Definition at line 1791 of file vm_interface.h.

◆ igmp_enabled_

bool VmInterface::igmp_enabled_
private

Definition at line 1744 of file vm_interface.h.

◆ instance_ipv4_list_

InstanceIpList VmInterface::instance_ipv4_list_
private

Definition at line 1767 of file vm_interface.h.

◆ instance_ipv6_list_

InstanceIpList VmInterface::instance_ipv6_list_
private

Definition at line 1768 of file vm_interface.h.

◆ interface_route_state_

std::unique_ptr<VmiRouteState> VmInterface::interface_route_state_
private

Definition at line 1757 of file vm_interface.h.

◆ is_left_si_

bool VmInterface::is_left_si_
private

Definition at line 1807 of file vm_interface.h.

◆ is_vn_qos_config_

bool VmInterface::is_vn_qos_config_
private

Definition at line 1794 of file vm_interface.h.

◆ kInterface

const char * VmInterface::kInterface = "interface"
static

Definition at line 371 of file vm_interface.h.

◆ kInterfaceStatic

const char * VmInterface::kInterfaceStatic = "interface-static"
static

Definition at line 373 of file vm_interface.h.

◆ kInvalidIsid

const uint32_t VmInterface::kInvalidIsid = 0xFFFFFF
static

Definition at line 365 of file vm_interface.h.

◆ kInvalidPmdId

const uint32_t VmInterface::kInvalidPmdId = 0xFFFF
static

Definition at line 364 of file vm_interface.h.

◆ kInvalidVlanId

const uint32_t VmInterface::kInvalidVlanId = 0xFFFF
static

Definition at line 363 of file vm_interface.h.

◆ kMaxMacIpLimit

const uint32_t VmInterface::kMaxMacIpLimit = 50
static

Definition at line 368 of file vm_interface.h.

◆ kServiceInterface

const char * VmInterface::kServiceInterface = "service-interface"
static

Definition at line 372 of file vm_interface.h.

◆ layer2_control_word_

bool VmInterface::layer2_control_word_
private

Definition at line 1798 of file vm_interface.h.

◆ layer3_forwarding_

bool VmInterface::layer3_forwarding_
private

Definition at line 1721 of file vm_interface.h.

◆ learning_enabled_

bool VmInterface::learning_enabled_
private

Definition at line 1795 of file vm_interface.h.

◆ learnt_mac_ip_list_

LearntMacIpList VmInterface::learnt_mac_ip_list_
private

Definition at line 1773 of file vm_interface.h.

◆ local_preference_

uint32_t VmInterface::local_preference_
private

Definition at line 1739 of file vm_interface.h.

◆ logical_interface_

boost::uuids::uuid VmInterface::logical_interface_
private

Definition at line 1786 of file vm_interface.h.

◆ mac_ip_learning_enable_

bool VmInterface::mac_ip_learning_enable_
private

Definition at line 1745 of file vm_interface.h.

◆ mac_set_

bool VmInterface::mac_set_
private

Definition at line 1723 of file vm_interface.h.

◆ mac_vm_binding_state_

std::unique_ptr<MacVmBindingState> VmInterface::mac_vm_binding_state_
private

Definition at line 1751 of file vm_interface.h.

◆ max_flows_

uint32_t VmInterface::max_flows_
private

Definition at line 1747 of file vm_interface.h.

◆ metadata_ip6_state_

std::unique_ptr<MetaDataIpState> VmInterface::metadata_ip6_state_
private

Definition at line 1755 of file vm_interface.h.

◆ metadata_ip_map_

MetaDataIpMap VmInterface::metadata_ip_map_
private

Definition at line 1790 of file vm_interface.h.

◆ metadata_ip_state_

std::unique_ptr<MetaDataIpState> VmInterface::metadata_ip_state_
private

Definition at line 1754 of file vm_interface.h.

◆ mirror_direction_

Interface::MirrorDirection VmInterface::mirror_direction_
private

Definition at line 1699 of file vm_interface.h.

◆ mirror_entry_

MirrorEntryRef VmInterface::mirror_entry_
private

Definition at line 1698 of file vm_interface.h.

◆ need_linklocal_ip_

bool VmInterface::need_linklocal_ip_
private

Definition at line 1702 of file vm_interface.h.

◆ nexthop_state_

std::unique_ptr<NextHopState> VmInterface::nexthop_state_
private

Definition at line 1752 of file vm_interface.h.

◆ nova_ip6_addr_

Ip6Address VmInterface::nova_ip6_addr_
private

Definition at line 1788 of file vm_interface.h.

◆ nova_ip_addr_

Ip4Address VmInterface::nova_ip_addr_
private

Definition at line 1787 of file vm_interface.h.

◆ oper_dhcp_options_

OperDhcpOptions VmInterface::oper_dhcp_options_
private

Definition at line 1741 of file vm_interface.h.

◆ parent_

InterfaceBackRef VmInterface::parent_
private

Definition at line 1738 of file vm_interface.h.

◆ parent_list_

InterfaceList VmInterface::parent_list_
private

Definition at line 1818 of file vm_interface.h.

◆ pbb_interface_

bool VmInterface::pbb_interface_
private

Definition at line 1797 of file vm_interface.h.

◆ peer_

std::unique_ptr<LocalVmPortPeer> VmInterface::peer_
private

Definition at line 1776 of file vm_interface.h.

◆ policy_enabled_

bool VmInterface::policy_enabled_
private

Definition at line 1697 of file vm_interface.h.

◆ primary_ip6_addr_

Ip6Address VmInterface::primary_ip6_addr_
private

Definition at line 1695 of file vm_interface.h.

◆ primary_ip_addr_

Ip4Address VmInterface::primary_ip_addr_
private

Definition at line 1693 of file vm_interface.h.

◆ proxy_arp_mode_

ProxyArpMode VmInterface::proxy_arp_mode_
private

Definition at line 1713 of file vm_interface.h.

◆ receive_route_list_

VmiReceiveRouteList VmInterface::receive_route_list_
private

Definition at line 1772 of file vm_interface.h.

◆ resolve_route_state_

std::unique_ptr<ResolveRouteState> VmInterface::resolve_route_state_
private

Definition at line 1756 of file vm_interface.h.

◆ rx_vlan_id_

uint16_t VmInterface::rx_vlan_id_
private

Definition at line 1737 of file vm_interface.h.

◆ service_health_check_ip_

IpAddress VmInterface::service_health_check_ip_
private

Definition at line 1793 of file vm_interface.h.

◆ service_intf_type_

std::string VmInterface::service_intf_type_
private

Definition at line 1817 of file vm_interface.h.

◆ service_ip6_

Ip6Address VmInterface::service_ip6_
private

Definition at line 1728 of file vm_interface.h.

◆ service_ip_

Ip4Address VmInterface::service_ip_
private

Definition at line 1726 of file vm_interface.h.

◆ service_ip_ecmp6_

bool VmInterface::service_ip_ecmp6_
private

Definition at line 1729 of file vm_interface.h.

◆ service_ip_ecmp_

bool VmInterface::service_ip_ecmp_
private

Definition at line 1727 of file vm_interface.h.

◆ service_mode_

uint32_t VmInterface::service_mode_
private

Definition at line 1808 of file vm_interface.h.

◆ service_vlan_list_

ServiceVlanList VmInterface::service_vlan_list_
private

Definition at line 1764 of file vm_interface.h.

◆ sg_list_

SecurityGroupEntryList VmInterface::sg_list_
private

Definition at line 1760 of file vm_interface.h.

◆ si_other_end_vmi_

boost::uuids::uuid VmInterface::si_other_end_vmi_
private

Definition at line 1814 of file vm_interface.h.

◆ slo_list_

UuidList VmInterface::slo_list_
private

Definition at line 1802 of file vm_interface.h.

◆ static_route_list_

StaticRouteList VmInterface::static_route_list_
private

Definition at line 1765 of file vm_interface.h.

◆ subnet_

Ip4Address VmInterface::subnet_
private

Definition at line 1782 of file vm_interface.h.

◆ subnet_bcast_addr_

Ip4Address VmInterface::subnet_bcast_addr_
private

Definition at line 1694 of file vm_interface.h.

◆ subnet_plen_

uint8_t VmInterface::subnet_plen_
private

Definition at line 1783 of file vm_interface.h.

◆ tag_list_

TagEntryList VmInterface::tag_list_
private

Definition at line 1761 of file vm_interface.h.

◆ tx_vlan_id_

uint16_t VmInterface::tx_vlan_id_
private

Definition at line 1736 of file vm_interface.h.

◆ vhostuser_mode_

uint8_t VmInterface::vhostuser_mode_
private

Definition at line 1805 of file vm_interface.h.

◆ vHostUserClient

const uint8_t VmInterface::vHostUserClient = 0
static

Definition at line 366 of file vm_interface.h.

◆ vHostUserServer

const uint8_t VmInterface::vHostUserServer = 1
static

Definition at line 367 of file vm_interface.h.

◆ vm_

VmEntryBackRef VmInterface::vm_
private

Definition at line 1691 of file vm_interface.h.

◆ vm_ip_service_addr_

Ip4Address VmInterface::vm_ip_service_addr_
private

Definition at line 1777 of file vm_interface.h.

◆ vm_mac_

MacAddress VmInterface::vm_mac_
private

Definition at line 1696 of file vm_interface.h.

◆ vm_name_

std::string VmInterface::vm_name_
private

Definition at line 1715 of file vm_interface.h.

◆ vm_project_uuid_

boost::uuids::uuid VmInterface::vm_project_uuid_
private

Definition at line 1718 of file vm_interface.h.

◆ vmi_cfg_uuid_

boost::uuids::uuid VmInterface::vmi_cfg_uuid_
private

Definition at line 1816 of file vm_interface.h.

◆ vmi_type_

VmInterface::VmiType VmInterface::vmi_type_
private

Definition at line 1779 of file vm_interface.h.

◆ vn_

VnEntryRef VmInterface::vn_
private

Definition at line 1692 of file vm_interface.h.

◆ vrf_assign_rule_list_

VrfAssignRuleList VmInterface::vrf_assign_rule_list_
private

Definition at line 1771 of file vm_interface.h.

◆ vrf_name_

std::string VmInterface::vrf_name_
private

Definition at line 1716 of file vm_interface.h.

◆ vrf_table_label_state_

std::unique_ptr<VrfTableLabelState> VmInterface::vrf_table_label_state_
private

Definition at line 1753 of file vm_interface.h.

◆ vxlan_id_

int VmInterface::vxlan_id_
private

Definition at line 1719 of file vm_interface.h.


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