5 #ifndef vnsw_agent_vm_interface_hpp
6 #define vnsw_agent_vm_interface_hpp
176 Op l2_force_op,
Op l3_force_op)
const;
509 typedef std::map<PortMapKey, uint16_t, PortMapKey>
PortMap;
528 int32_t
GetSrcPortMap(uint8_t protocol, uint16_t src_port)
const;
529 int32_t
GetDstPortMap(uint8_t protocol, uint16_t dst_port)
const;
577 void Remove(FloatingIpSet::iterator &it);
620 void Remove(AliasIpSet::iterator &it);
671 void Remove(ServiceVlanSet::iterator &it);
708 void Remove(StaticRouteSet::iterator &it);
753 typedef std::set<AllowedAddressPair, AllowedAddressPair>
762 void Remove(AllowedAddressPairSet::iterator &it);
790 typedef std::set<SecurityGroupEntry, SecurityGroupEntry>
801 void Remove(SecurityGroupEntrySet::iterator &it);
838 void Remove(TagEntrySet::iterator &it);
851 const std::string &
vrf_name,
bool ignore_acl);
873 void Remove(VrfAssignRuleSet::iterator &it);
887 bool is_primary,
bool is_service_ip,
888 bool is_service_health_check_ip,
889 bool is_local,
const IpAddress &tracking_ip);
942 void Remove(InstanceIpSet::iterator &it);
1011 #define FAT_FLOW_ENTRY_MIN_PREFIX_LEN 8
1046 const std::string &ignore_addr_str,
1097 void print(
void)
const;
1118 void Remove(FatFlowEntrySet::iterator &it);
1170 void Remove(BridgeDomainEntrySet::iterator &it);
1210 void Remove(VmiReceiveRouteSet::iterator &it);
1234 const std::string &
name,
1314 if (
agent()->is_l3mh() ==
false &&
1441 uint16_t *dport,
bool *same_port_num,
1447 uint16_t *dport,
bool *same_port_num,
1453 uint16_t *dport,
bool *same_port_num,
1456 uint16_t *dport,
bool *same_port_num,
1458 bool *is_src_prefix,
bool *is_dst_prefix,
1496 return (static_cast<InterfaceTable *>(
get_table()))->agent();
1514 std::vector<autogen::DhcpOptionType> *
options)
const;
1516 std::vector<autogen::DhcpOptionType> *
options,
bool ipv6)
const;
1518 std::vector<autogen::DhcpOptionType> *
options,
bool ipv6)
const;
1531 const uint8_t plen)
const;
1534 std::vector<std::string> *vect)
const;
1578 const std::string &os_name,
const Ip4Address &addr,
1579 const std::string &
mac,
const std::string &vn_name,
1591 const std::string &ifname);
1625 bool *ecmp_changed,
bool *local_pref_changed,
1626 bool *ecmp_load_balance_changed,
1627 bool *static_route_config_changed,
1628 bool *etree_leaf_mode_changed,
1630 void ApplyConfig(
bool old_ipv4_active,
bool old_l2_active,
1631 bool old_ipv6_active,
1633 const uint8_t old_subnet_plen);
1639 uint32_t plen,
const std::string &vn_name,
bool force_policy,
1640 bool ecmp,
bool is_local,
bool proxy_arp,
1643 const string &intf_route_type,
bool is_learnt_route =
false);
1648 bool new_ipv4_active);
1875 bool *force_update)
const = 0;
1887 bool *force_update)
const;
1898 bool *force_update)
const;
1911 bool *force_update)
const;
1926 bool *force_update)
const;
1927 autogen::VirtualMachineInterface *
GetVmiCfg()
const;
2013 const std::string &mac_addr,
2014 const std::string vm_name,
2017 const std::string &parent,
2018 uint16_t tx_vlan_id,
2019 uint16_t rx_vlan_id,
2022 uint8_t vhostuser_mode,
2024 uint8_t link_state);
2031 bool *force_update)
const;
2050 bool layer3_forwarding,
2059 bool *force_update)
const;
2070 bool *force_update)
const;
2077 bool *force_update)
const;
2092 bool *force_update)
const;
2100 bool *force_update)
const;
2105 #endif // vnsw_agent_vm_interface_hpp
std::set< AliasIp, AliasIp > AliasIpSet
virtual VmInterface * OnAdd(const InterfaceTable *table, const VmInterfaceKey *key) const
boost::intrusive_ptr< SgEntry > SgEntryRef
bool IsHealthCheckEnabled() const
bool GetIpamDhcpOptions(std::vector< autogen::DhcpOptionType > *options, bool ipv6) const
VrfEntry * GetAliasIpVrf(const IpAddress &ip) const
void BuildFatFlowExcludeList(FatFlowExcludeList *list) const
virtual bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
void Insert(const ServiceVlan *rhs)
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
VmInterface::FloatingIpList floating_ip_list_
std::string analyzer_name_
bool IsLess(const InstanceIp *rhs) const
virtual bool OnDelete(const InterfaceTable *table, VmInterface *vmi) const
void set_etree_leaf(bool val)
PortMapKey(uint8_t protocol, uint16_t port)
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
VmInterface::StaticRouteList static_route_list_
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
void Update(const SecurityGroupEntry *lhs, const SecurityGroupEntry *rhs)
BridgeDomainEntrySet list_
bool pbb_interface() const
std::unique_ptr< LocalVmPortPeer > peer_
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
uint8_t dst_aggregate_plen
virtual ~VmInterfaceNewFlowDropData()
std::vector< Interface * > InterfaceList
void set_pbb_interface(bool val)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
void SetPathPreference(PathPreference *pref, bool ecmp, const IpAddress &dependent_ip) const
void set_vm_mac(const MacAddress &mac)
bool IsMirrorEnabled() const
boost::uuids::uuid parent_vmi_
const MacAddress & vm_mac() const
static const uint32_t kInvalidIsid
void CleanupFloatingIpList()
bool AddL3(const Agent *agent, VmInterface *vmi) const
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
VmInterface::VrfAssignRuleList vrf_assign_rule_list_
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
VnEntry * GetNonConstVn() const
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
bool dhcp_enable_v6_config() const
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
virtual VmInterface * OnAdd(const InterfaceTable *table, const VmInterfaceKey *key) const
boost::uuids::uuid qos_config_uuid_
std::set< VrfAssignRule, VrfAssignRule > VrfAssignRuleSet
bool AddL2(const Agent *agent, VmInterface *vmi) const
AliasIpList alias_ip_list_
void Copy(const Agent *agent, const VmInterface *vmi) const
void SetInterfacesDropNewFlows(bool drop_new_flows) const
bool HasServiceVlan() const
std::unique_ptr< MetaDataIpState > metadata_ip6_state_
void Insert(const AllowedAddressPair *rhs)
NextHopRef l3_nh_no_policy_
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
void Update(const Agent *agent, VmInterface *vmi, const VmInterface::InstanceIpList *list) const
void set_subnet_bcast_addr(const Ip4Address &addr)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
bool AddL3(const Agent *agent, VmInterface *vmi) const
const boost::uuids::uuid & vm_project_uuid() const
uint8_t configurer() const
bool IsFloatingIp(const IpAddress &ip) const
std::set< InstanceIp, InstanceIp > InstanceIpSet
void Remove(SecurityGroupEntrySet::iterator &it)
boost::uuids::uuid logical_interface_
const NextHop * l2_interface_nh_policy() const
uint16_t rx_vlan_id() const
bool IsLess(const VmiReceiveRoute *rhs) const
bool IsLess(const StaticRoute *rhs) const
Interface::MirrorDirection mirror_direction_
bool port_map_enabled() const
OperDhcpOptions oper_dhcp_options_
Ip4Address subnet_bcast_addr_
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
bool AddL3(const Agent *agent, VmInterface *vmi) const
VmInterfaceOsOperStateData(bool status)
void SendTrace(const AgentDBTable *table, Trace event) const
void Update(const VrfAssignRule *lhs, const VrfAssignRule *rhs)
DISALLOW_COPY_AND_ASSIGN(VmInterface)
virtual bool CmpInterface(const DBEntry &rhs) const
std::vector< uint16_t > fat_flow_v6_exclude_plen_list_
boost::uuids::uuid vmi_cfg_uuid_
static const uint32_t kMaxMacIpLimit
static IgnoreAddressMap InitIgnoreAddressMap()
const ServiceVlanList & service_vlan_list() const
bool operator()(const FatFlowEntry &lhs, const FatFlowEntry &rhs) const
VmInterface::VmiType vmi_type_
virtual VmInterface * OnAdd(const InterfaceTable *table, const VmInterfaceKey *key) const
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
bool GetSubnetDhcpOptions(std::vector< autogen::DhcpOptionType > *options, bool ipv6) const
bool is_force_policy() const
bool MatchSrcPrefixPort(uint8_t protocol, uint16_t port, IpAddress *src_ip, FatFlowIgnoreAddressType *ignore_addr) const
DBTableBase * get_table() const
void ResetConfigurer(VmInterface::Configurer type)
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
Ip6Address primary_ip6_addr_
void Remove(InstanceIpSet::iterator &it)
bool AddL2(const Agent *agent, VmInterface *vmi) const
Ip4Address mdata_ip_addr() const
virtual ~VmInterfaceLearntMacIpData()
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
bool service_ip_ecmp6() const
void Remove(FatFlowEntrySet::iterator &it)
VmInterface::DeviceType device_type_
VmInterfaceState(bool l2_installed, bool l3_installed)
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
bool dhcp_enable_config() const
bool operator()(const BridgeDomain &lhs, const BridgeDomain &rhs) const
bool AddL3(const Agent *agent, VmInterface *vmi) const
bool OnResyncServiceVlan(VmInterfaceConfigData *data)
const LearntMacIpList & learnt_mac_ip_list() const
VmInterface::DeviceType device_type() const
bool operator==(const SecurityGroupEntry &rhs) const
void InsertHealthCheckInstance(HealthCheckInstanceBase *hc_inst)
uint32_t GetServiceVlanLabel(const VrfEntry *vrf) const
void Remove(BridgeDomainEntrySet::iterator &it)
std::vector< uint64_t > fat_flow_v4_exclude_list_
AllowedAddressPairList allowed_address_pair_list_
std::set< BridgeDomain, BridgeDomain > BridgeDomainEntrySet
boost::asio::ip::address IpAddress
std::string physical_interface_
VmInterface::InstanceIpList instance_ipv4_list_
const MacAddress & GetVifMac(const Agent *) const
bool operator()(const VmiReceiveRoute &lhs, const VmiReceiveRoute &rhs) const
Interface::Transport transport() const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
bool InstallBridgeRoutes() const
bool GetInterfaceDhcpOptions(std::vector< autogen::DhcpOptionType > *options) const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
bool AddL3(const Agent *agent, VmInterface *vmi) const
IpAddress service_health_check_ip_
void Update(const FatFlowEntry *lhs, const FatFlowEntry *rhs)
const VrfAssignRuleList & vrf_assign_rule_list() const
void BuildIpStringList(Address::Family family, std::vector< std::string > *vect) const
bool ResyncOsOperState(const VmInterfaceOsOperStateData *data)
const Ip4Address & vm_ip_service_addr() const
tbb::atomic< int > flow_count_
std::vector< int > SecurityGroupList
VmInterface::InstanceIpList instance_ipv6_list_
const NextHop * l3_interface_nh_no_policy() const
const UuidList & slo_list() const
bool ecmp_config_changed_
FatFlowEntry(const uint8_t proto, const uint16_t p, FatFlowIgnoreAddressType ignore_addr, FatFlowPrefixAggregateType prefix_aggr)
virtual ~VrfTableLabelState()
void set_layer3_forwarding(bool val)
bool operator()(const FloatingIp &lhs, const FloatingIp &rhs) const
std::string ToString() const
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
InterfaceKey * Clone() const
void Remove(const LearntMacIp *rhs)
ProxyArpMode proxy_arp_mode_
const NextHop * l2_interface_nh_no_policy() const
Interface::MirrorDirection mirror_direction_
ProxyArpMode proxy_arp_mode() const
IpAddress service_health_check_ip() const
void UpdateMetaDataIpInfo()
void Copy(const Agent *agent, const VmInterface *vmi) const
std::unique_ptr< MetaDataIpState > metadata_ip_state_
VmInterface::HbsIntfType hbs_intf_type() const
const Ip4Address & subnet() const
std::unique_ptr< NextHopState > nexthop_state_
const boost::uuids::uuid & si_other_end_vmi() const
void FillV4ExcludeIp(uint64_t plen, const Ip4Address &ip, FatFlowExcludeList *list) const
bool service_ip_ecmp() const
boost::uuids::uuid vm_project_uuid_
std::set< VmiReceiveRoute, VmiReceiveRoute > VmiReceiveRouteSet
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
bool is_service_health_check_ip_
void CopyEcmpLoadBalance(EcmpLoadBalance &ecmp_load_balance)
bool AddL2(const Agent *agent, VmInterface *vmi) const
VmInterfaceLearntMacIpData()
virtual bool DeleteL3(const Agent *agent, VmInterface *vmi) const
uint32_t l2_label() const
Direction direction() const
void set_layer2_control_word(bool val)
std::map< IpAddress, MetaDataIp * > MetaDataIpMap
VmInterfaceHealthCheckData()
static const uint32_t kInvalidPmdId
bool AddL2(const Agent *agent, VmInterface *vmi) const
FatFlowEntry(const uint8_t proto, const uint16_t p)
VmInterface::ProxyArpMode proxy_arp_mode_
InstanceIpList(bool is_ipv4)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
uint32_t GetPbbLabel() const
const MacAddress & mac() const
bool AddL2(const Agent *agent, VmInterface *vmi) const
int32_t GetSrcPortMap(uint8_t protocol, uint16_t src_port) const
void Copy(const Agent *agent, const VmInterface *vmi) const
VmInterfaceData(Agent *agent, IFMapNode *node, Type type, Interface::Transport transport)
void DeleteCommon(const VmInterface *vmi) const
static void SetIfNameReq(InterfaceTable *table, const boost::uuids::uuid &uuid, const std::string &ifname)
StaticRouteList static_route_list_
VmInterfaceNewFlowDropData(bool drop_new_flows)
bool AddL2(const Agent *agent, VmInterface *vmi) const
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
NextHopRef l3_nh_no_policy_
VmInterfaceState::Op GetOp(VmInterfaceState::Op op) const
const Peer * peer() const
boost::uuids::uuid vm_uuid_
IpAddress GetServiceIp(const IpAddress &ip) const
FatFlowPrefixAggregateType prefix_aggregate
size_t GetAliasIpCount() const
bool operator==(const BridgeDomain &rhs) const
bool operator()(const AliasIp &lhs, const AliasIp &rhs) const
BridgeDomainConstRef bridge_domain_
bool CopyIp6Address(const Ip6Address &addr)
virtual ~SecurityGroupEntry()
const boost::uuids::uuid & logical_router_uuid() const
boost::uuids::uuid vm_project_uuid_
bool operator()(const VrfAssignRule &lhs, const VrfAssignRule &rhs) const
virtual ~VmInterfaceOsOperStateData()
bool operator==(const VrfAssignRule &rhs) const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
~SecurityGroupEntryList()
std::unique_ptr< DBRequestKey > KeyPtr
bool CanBeDeleted() const
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
VmInterface::BridgeDomainList bridge_domain_list_
bool AddL3(const Agent *agent, VmInterface *vmi) const
VrfAssignRuleList vrf_assign_rule_list_
bool AddL3(const Agent *agent, VmInterface *vmi) const
VmInterface(const boost::uuids::uuid &uuid, const std::string &name, bool os_oper_state, const boost::uuids::uuid &logical_router_uuid)
std::vector< AclDBEntryConstRef > FirewallPolicyList
const VmiReceiveRouteList & receive_route_list() const
std::unique_ptr< VrfTableLabelState > vrf_table_label_state_
Ip4Address dhcp_addr() const
virtual ~AllowedAddressPair()
bool learning_enabled() const
int32_t GetDstPortMap(uint8_t protocol, uint16_t dst_port) const
void Copy(const Agent *agent, const VmInterface *vmi) const
VmInterface::LearntMacIpList mac_ip_list_
void Update(const StaticRoute *lhs, const StaticRoute *rhs)
uint8_t vhostuser_mode() const
const std::string & service_intf_type() const
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
virtual ~VmInterfaceMirrorData()
std::set< StaticRoute, StaticRoute > StaticRouteSet
void set_device_type(VmInterface::DeviceType type)
bool AddL2(const Agent *agent, VmInterface *vmi) const
void SetPrefixForAllocUnitIpam(VmInterface *intrface) const
void SetServiceVlanPathPreference(PathPreference *pref, const IpAddress &service_ip) const
bool UpdatePolicySet(const Agent *agent)
bool ResyncConfig(VmInterfaceConfigData *data)
const VmiEcmpLoadBalance & ecmp_load_balance() const
void Update(const ServiceVlan *lhs, const ServiceVlan *rhs)
void set_service_intf_type(std::string type)
static FatFlowEntry MakeFatFlowEntry(const std::string &protocol, const int &port, const std::string &ignore_addr_str, const std::string &src_prefix_str, const int &src_prefix_mask, const int &src_aggregate_plen, const std::string &dst_prefix_str, const int &dst_prefix_mask, const int &dst_aggregate_plen)
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
void set_mirror_entry(MirrorEntry *entry)
void Remove(AliasIpSet::iterator &it)
bool operator==(const AllowedAddressPair &rhs) const
void Update(const VmiReceiveRoute *lhs, const VmiReceiveRoute *rhs)
bool AddL2(const Agent *agent, VmInterface *vmi) const
void Copy(const Agent *agent, const VmInterface *vmi) const
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
uint16_t tx_vlan_id() const
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
void Insert(const BridgeDomain *rhs)
std::vector< uint64_t > fat_flow_v6_exclude_upper_list_
void SetConfigurer(VmInterface::Configurer type)
uint32_t FloatingIpCount() const
bool WaitForTraffic() const
BridgeDomainList bridge_domain_list_
FatFlowPrefixAggregateType
VmInterface::VmiType vmi_type_
virtual bool OnDelete(const InterfaceTable *table, VmInterface *entry) const
ListEntry(bool del_pending)
void Update(const Agent *agent, VmInterface *vmi, const VmInterface::InstanceIpList *list) const
bool operator()(const LearntMacIp &lhs, const LearntMacIp &rhs) const
virtual bool OnDelete(const InterfaceTable *table, VmInterface *entry) const
std::vector< SgEntryRef > SgList
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
MirrorEntryRef mirror_entry_
bool AddL3(const Agent *agent, VmInterface *vmi) const
void ApplyConfig(bool old_ipv4_active, bool old_l2_active, bool old_ipv6_active, const Ip4Address &old_subnet, const uint8_t old_subnet_plen)
VmInterfaceMirrorData(bool mirror_enable, const std::string &analyzer_name)
void Insert(const TagEntry *rhs)
void Insert(const StaticRoute *rhs)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
uint32_t local_preference() const
const SecurityGroupEntryList & sg_list() const
void CleanupAliasIpList()
void Update(const TagEntry *lhs, const TagEntry *rhs)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
bool OnChange(VmInterfaceData *data)
void Insert(const LearntMacIp *rhs)
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
virtual VmInterface * OnAdd(const InterfaceTable *table, const VmInterfaceKey *key) const
bool IsLess(const SecurityGroupEntry *rhs) const
static const uint8_t vHostUserClient
KeyPtr GetDBRequestKey() const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
void Remove(TagEntrySet::iterator &it)
NextHopRef l3_mcast_nh_no_policy_
boost::intrusive_ptr< VnEntry > VnEntryRef
NextHopRef l2_nh_no_policy_
bool IsConfigurerSet(VmInterface::Configurer type)
static const uint32_t kInvalidVlanId
VrfEntryRef forwarding_vrf_
virtual ~VmInterfaceData()
VmiReceiveRouteList receive_route_list_
bool flood_unknown_unicast() const
VmInterfaceIpAddressData()
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const =0
std::unique_ptr< MacVmBindingState > mac_vm_binding_state_
const std::string GetAnalyzer() const
boost::uuids::uuid si_other_end_vmi_
VmInterface::HbsIntfType hbs_intf_type_
std::vector< boost::uuids::uuid > SecurityGroupUuidList
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
LearntMacIp operator=(const LearntMacIp &rhs) const
bool need_linklocal_ip() const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
const FirewallPolicyList & fwaas_fw_policy_list() const
uint32_t label_op() const
virtual ~VmInterfaceIpAddressData()
MetaDataIpMap metadata_ip_map_
uint32_t l3_label() const
const HealthCheckInstanceSet & hc_instance_set() const
virtual ~VmInterfaceGlobalVrouterData()
virtual void GetOsParams(Agent *agent)
BridgeDomain(const BridgeDomain &rhs)
Ip4Address vm_ip_service_addr_
boost::asio::ip::address_v6 Ip6Address
uint32_t PortMappingSize() const
bool flood_unknown_unicast_
bool operator()(const StaticRoute &lhs, const StaticRoute &rhs) const
bool UpdateState(const VmInterfaceState *attr, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
std::map< std::string, FatFlowIgnoreAddressType > IgnoreAddressMap
uint8_t src_aggregate_plen
bool IsUnrestrictedProxyArp() const
ServiceVlanList service_vlan_list_
boost::intrusive_ptr< AclDBEntry > AclDBEntryRef
NextHopRef policy_enabled_nh_
std::unique_ptr< ResolveRouteState > resolve_route_state_
AllowedAddressPairSet list_
void Copy(const Agent *agent, const VmInterface *vmi) const
bool IsMaxMacIpLearnt() const
void Update(const BridgeDomain *lhs, const BridgeDomain *rhs)
bool NeedOsStateWithoutDevice() const
void set_dhcp_enable_config(bool dhcp_enable)
const TagEntryList & tag_list() const
std::string service_intf_type_
VmInterface::SecurityGroupEntryList sg_list_
bool layer3_forwarding() const
VmInterface::AliasIpList alias_ip_list_
virtual ~VmInterfaceState()
VmInterface::AllowedAddressPairList allowed_address_pair_list_
virtual bool DeleteL2(const Agent *agent, VmInterface *vmi) const
bool cfg_igmp_enable() const
const InstanceIpList & instance_ipv6_list() const
bool IsIpv4Active() const
std::set< HealthCheckInstanceBase * > HealthCheckInstanceSet
LearntMacIpList learnt_mac_ip_list_
virtual bool OnDelete(const InterfaceTable *table, VmInterface *entry) const
boost::uuids::uuid si_other_end_vmi_
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
bool os_oper_state() const
bool AddL3(const Agent *agent, VmInterface *vmi) const
const OperDhcpOptions & oper_dhcp_options() const
void Copy(const Agent *agent, const VmInterface *vmi) const
bool IsLess(const TagEntry *rhs) const
VmInterface::VmiType vmi_type_
bool UpdateList(const Agent *agent, VmInterface *vmi)
void set_hbs_intf_type(VmInterface::HbsIntfType val)
bool DeleteState(VmInterfaceState *attr)
virtual ~VmInterfaceConfigData()
bool AddL3(const Agent *agent, VmInterface *vmi) const
void DeleteRoute(const std::string &vrf_name, const IpAddress &ip, uint32_t plen)
OperDhcpOptions oper_dhcp_options_
uint32_t GetPbbVrf() const
IpAddress service_health_check_ip_
void AddCommon(const Agent *agent, const VmInterface *vmi) const
void Update(const AllowedAddressPair *lhs, const AllowedAddressPair *rhs)
VmInterface::DeviceType device_type_
HealthCheckInstanceSet hc_instance_set_
FirewallPolicyList fwaas_fw_policy_list_
void Remove(VrfAssignRuleSet::iterator &it)
std::set< SecurityGroupEntry, SecurityGroupEntry > SecurityGroupEntrySet
const VnEntry * vn() const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
void Update(const InstanceIp *lhs, const InstanceIp *rhs)
bool policy_enabled() const
FatFlowEntry(const FatFlowEntry &rhs)
void set_dhcp_enable_v6_config(bool dhcp_enable_v6)
std::vector< std::string > CommunityList
void update_flow_count(int val) const
void set_learning_enabled(bool val)
boost::intrusive_ptr< TagEntry > TagEntryRef
std::vector< Ip4Address > AddressList
Ip6Address mdata_ip6_addr() const
FatFlowList fat_flow_list_
Interface::MirrorDirection mirror_direction() const
std::vector< std::string > physical_interface_list_
uint32_t flow_count() const
void Remove(VmiReceiveRouteSet::iterator &it)
Ip4Address primary_ip_addr_
boost::uuids::uuid logical_interface_
FatFlowIgnoreAddressType ignore_address
void set_del_pending(bool val) const
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)
BridgeDomain(const boost::uuids::uuid &uuid, uint32_t vlan_tag)
bool AddL3(const Agent *agent, VmInterface *vmi) const
VmInterfaceGlobalVrouterData(bool bridging, bool layer3_forwarding, int vxlan_id)
bool PolicyEnabled() const
bool IsLess(const ServiceVlan *rhs) const
void UpdateInterfaceHealthCheckService()
const AclDBEntry * vrf_assign_acl() const
void Remove(ServiceVlanSet::iterator &it)
void CopyVhostData(const Agent *agent)
bool ExcludeFromFatFlow(Address::Family family, const IpAddress &sip, const IpAddress &dip) const
bool mac_ip_learning_enable_
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
void Insert(const VrfAssignRule *rhs)
std::vector< boost::uuids::uuid > UuidList
boost::asio::ip::address_v4 Ip4Address
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
const BridgeDomainList & bridge_domain_list() const
void DeleteMetaDataIpInfo(MetaDataIp *mip)
std::map< PortMapKey, uint16_t, PortMapKey > PortMap
const FatFlowList & fat_flow_list() const
bool layer2_control_word_
bool CopyIpAddress(Ip4Address &addr)
std::string physical_interface_
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
void DeleteHealthCheckInstance(HealthCheckInstanceBase *hc_inst)
VmInterfaceConfigData(Agent *agent, IFMapNode *node)
const Ip4Address & primary_ip_addr() const
const boost::uuids::uuid & logical_interface() const
VmInterface::HbsIntfType hbs_intf_type_
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
const StaticRouteList & static_route_list() const
boost::uuids::uuid vn_uuid_
bool IsLess(const FatFlowEntry *rhs) const
FirewallPolicyList fw_policy_list_
virtual void ObtainOsSpecificParams(const std::string &name, Agent *agent)
const FloatingIpList & floating_ip_list() const
bool operator()(const PortMapKey &lhs, const PortMapKey &rhs) const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
const std::string & vrf_name() const
PortMap::iterator PortMapIterator
void Copy(const Agent *agent, const VmInterface *vmi) const
const InstanceIpList & instance_ipv4_list() const
static const char * kInterfaceStatic
~AllowedAddressPairList()
std::vector< uint64_t > fat_flow_v6_exclude_lower_list_
const MacAddress & GetIpMac(const IpAddress &, const uint8_t plen) const
std::set< TagEntry, TagEntry > TagEntrySet
bool Resync(const InterfaceTable *table, const VmInterfaceData *data)
virtual ~MacVmBindingState()
boost::uuids::uuid vmi_cfg_uuid_
bool IsLess(const VrfAssignRule *rhs) const
static void DeleteIfNameReq(InterfaceTable *table, const boost::uuids::uuid &uuid)
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
bool MatchSrcDstPrefixRule(uint8_t protocol, uint16_t *sport, uint16_t *dport, bool *same_port_num, IpAddress *SrcIP, IpAddress *DstIP) const
bool MatchDstPrefixPort(uint8_t protocol, uint16_t port, IpAddress *dst_ip, FatFlowIgnoreAddressType *ignore_addr) const
bool operator()(const AllowedAddressPair &lhs, const AllowedAddressPair &rhs) const
void Remove(StaticRouteSet::iterator &it)
size_t GetFloatingIpCount() const
VmInterface::TagEntryList tag_list_
const Agent * agent() const
const std::string & vm_name() const
static const char * kInterface
void InsertMetaDataIpInfo(MetaDataIp *mip)
InterfaceList parent_list_
bool MatchSrcPrefixRule(uint8_t protocol, uint16_t *sport, uint16_t *dport, bool *same_port_num, IpAddress *SrcIP, FatFlowIgnoreAddressType *ignore_addr) const
bool ResyncIpAddress(const VmInterfaceIpAddressData *data)
void Update(const AliasIp *lhs, const AliasIp *rhs)
VmInterface::VmiType vmi_type() const
VmInterface::FatFlowList fat_flow_list_
std::set< ServiceVlan, ServiceVlan > ServiceVlanSet
bool MatchDstPrefixRule(uint8_t protocol, uint16_t *sport, uint16_t *dport, bool *same_port_num, IpAddress *DstIP, FatFlowIgnoreAddressType *ignore_addr) const
autogen::MatchConditionType match_condition_
bool operator==(const LearntMacIp &rhs) const
InstanceIpList instance_ipv4_list_
bool IsLess(const AliasIp *rhs) const
virtual bool AddL3(const Agent *agent, VmInterface *vmi) const
bool is_vn_qos_config() const
const Ip6Address & primary_ip6_addr() const
virtual bool AddL2(const Agent *agent, VmInterface *vmi) const
bool IsMetaDataIPActive() const
static IgnoreAddressMap fatflow_ignore_addr_map_
static const uint8_t vHostUserServer
bool AddL3(const Agent *agent, VmInterface *vmi) const
bool operator==(const TagEntry &rhs) const
const boost::uuids::uuid & vmi_cfg_uuid() const
uint32_t max_flows() const
boost::intrusive_ptr< MirrorEntry > MirrorEntryRef
const uint8_t subnet_plen() const
bool mac_ip_learning_enable_
FloatingIpList floating_ip_list_
const std::string & cfg_name() const
InstanceIpList instance_ipv6_list_
std::unique_ptr< VmiRouteState > interface_route_state_
NextHopRef policy_disabled_nh_
SecurityGroupEntrySet list_
std::set< FloatingIp, FloatingIp > FloatingIpSet
std::set< FatFlowEntry, FatFlowEntry > FatFlowEntrySet
bool IsLess(const FloatingIp *rhs) const
bool igmp_enabled() const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
virtual Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
uint32_t ethernet_tag() const
bool layer2_control_word() const
void AddL2InterfaceRoute(const IpAddress &ip, const MacAddress &mac, const IpAddress &dependent_ip) const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
virtual bool Update(const Agent *agent, VmInterface *vmi, Op l2_force_op, Op l3_force_op) const
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
VmInterfaceKey(AgentKey::DBSubOperation sub_op, const boost::uuids::uuid &uuid, const std::string &name)
void Insert(const VmiReceiveRoute *rhs)
std::vector< boost::uuids::uuid > SgUuidList
const FirewallPolicyList & fw_policy_list() const
virtual void Copy(const Agent *agent, const VmInterface *vmi) const
bool NeedMplsLabel() 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 std::string & name() const
bool IsLess(const BridgeDomain *rhs) const
boost::uuids::uuid vn_uuid_
void Insert(const FloatingIp *rhs)
void Copy(const Agent *agent, const VmInterface *vmi) const
VmInterfaceState::Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
bool HasFloatingIp() const
void set_max_flows(uint32_t val)
VmInterfaceState::Op GetOpL3(const Agent *agent, const VmInterface *vmi) const
bool IsMetaDataL2Active() const
bool IsFatFlowPortBased(uint8_t protocol, uint16_t port, FatFlowIgnoreAddressType *ignore_addr) const
VmInterface * PortTuplePairedInterface() const
Interface * AllocEntry(const InterfaceTable *table) const
IpAddress GetGatewayIp(const IpAddress &ip) const
bool copyMacIpData(const VmInterfaceLearntMacIpData *data)
bool do_dhcp_relay() const
NextHopRef l2_nh_no_policy_
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
std::set< AllowedAddressPair, AllowedAddressPair > AllowedAddressPairSet
VrfEntry * forwarding_vrf() const
bool operator==(const FatFlowEntry &rhs) const
VmiEcmpLoadBalance ecmp_load_balance_
uint32_t local_preference_
bool SgExists(const boost::uuids::uuid &id, const SgList &sg_l)
void set_primary_ip_addr(const Ip4Address &addr)
bool DeleteL2(const Agent *agent, VmInterface *vmi) const
static const char * kServiceInterface
autogen::VirtualMachineInterface * GetVmiCfg() const
bool IsLess(const LearntMacIp *rhs) const
virtual ~VmInterfaceKey()
InstanceIp operator=(const InstanceIp &rhs) const
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
virtual ~VmInterfaceIfNameData()
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
VmInterface::DeviceType device_type_
virtual bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
virtual bool OnResync(const InterfaceTable *table, VmInterface *vmi, bool *force_update) const
AclDBEntryRef vrf_assign_acl_
bool mac_ip_learning_enable() const
bool ResetVrfDelete(const InterfaceTable *table, const std::string &vrf_name)
void Update(const FloatingIp *lhs, const FloatingIp *rhs)
virtual Op GetOpL2(const Agent *agent, const VmInterface *vmi) const
void Remove(AllowedAddressPairSet::iterator &it)
void Insert(const SecurityGroupEntry *rhs)
const IpAddress GetFixedIp(const VmInterface *) const
std::string analyzer_name_
bool OnResyncSecurityGroupList(VmInterfaceConfigData *data, bool new_ipv4_active)
void set_vmi_type(VmInterface::VmiType type)
void DeleteL2InterfaceRoute(const VrfEntry *vrf, uint32_t ethernet_tag, const IpAddress &ip, const MacAddress &mac) const
bool MatchAapIp(const IpAddress &ip, uint8_t plen) const
bool MatchSrcDstPrefixPort(uint8_t protocol, uint16_t port, IpAddress *src_ip, IpAddress *dst_ip) const
const AliasIpList & alias_ip_list() const
void Insert(const AliasIp *rhs)
virtual ~VmiReceiveRoute()
void Insert(const FatFlowEntry *rhs)
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)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
CommunityList communities_
std::string service_intf_type_
std::vector< boost::uuids::uuid > TagGroupUuidList
void set_vxlan_id(int vxlan_id)
void Update(const Agent *agent, VmInterface *vmi)
std::set< LearntMacIp, LearntMacIp > LearntMacIpSet
void Remove(FloatingIpSet::iterator &it)
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
boost::intrusive_ptr< const BridgeDomainEntry > BridgeDomainConstRef
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
void CopySgIdList(SecurityGroupList *sg_id_list) const
bool IsLess(const AllowedAddressPair *rhs) const
InterfaceList parent_list() const
bool operator()(const InstanceIp &lhs, const InstanceIp &rhs) const
VmiEcmpLoadBalance ecmp_load_balance_
const Interface * parent() const
virtual ~VmInterfaceNovaData()
bool IsIpv6Active() const
static Op RecomputeOp(Op old_op, Op new_op)
VmInterface::ServiceVlanList service_vlan_list_
bool operator()(const SecurityGroupEntry &lhs, const SecurityGroupEntry &rhs) const
boost::uuids::uuid vm_uuid_
bool UpdateIsHealthCheckActive()
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
const AllowedAddressPairList & allowed_address_pair_list() const
bool AddL3(const Agent *agent, VmInterface *vmi) const
Ip6Address nova_ip6_addr_
VmInterface::VmiReceiveRouteList receive_route_list_
void Update(const LearntMacIp *lhs, const LearntMacIp *rhs)
bool DeleteL3(const Agent *agent, VmInterface *vmi) const
SecurityGroupEntryList sg_list_
MetaDataIp * GetMetaDataIp(const IpAddress &ip) const
virtual ~ResolveRouteState()
boost::uuids::uuid vn_uuid_
const VmEntry * vm() const
void Insert(const InstanceIp *rhs)
bool UpdateList(const Agent *agent, VmInterface *vmi, VmInterfaceState::Op l2_force_op, VmInterfaceState::Op l3_force_op)
void Copy(const Agent *agent, const VmInterface *vmi) const
void Copy(const Agent *agent, const VmInterface *vmi) 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)
const Ip4Address & subnet_bcast_addr() const
virtual ~VmInterfaceHealthCheckData()
bool operator==(const InstanceIp &rhs) const
bool AddL3(const Agent *agent, VmInterface *vmi) const
const MirrorEntry * mirror_entry() const
bool operator()(const ServiceVlan &lhs, const ServiceVlan &rhs) const
bool OnResyncStaticRoute(VmInterfaceConfigData *data, bool new_ipv4_active)
bool drop_new_flows() const
const VrfEntry * GetServiceVlanVrf(uint16_t vlan_tag) const
void set_mirror_direction(Interface::MirrorDirection mirror_direction)
uint32_t local_preference_
bool AddL3(const Agent *agent, VmInterface *vmi) const
void Update(const Agent *agent, VmInterface *vmi) const
boost::intrusive_ptr< NextHop > NextHopRef
void FillV6ExcludeIp(uint16_t plen, const IpAddress &ip, FatFlowExcludeList *list) const
std::vector< int > TagList
bool operator()(const TagEntry &lhs, const TagEntry &rhs) const
void CopyTagIdList(TagList *tag_id_list) const
bool DeleteL3(const Agent *agent, VmInterface *vmi) const