OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vm_interface_config.cc File Reference
#include <bgp_schema_types.h>
#include <base/address_util.h>
#include <cmn/agent_cmn.h>
#include <cfg/cfg_init.h>
#include <oper/bridge_domain.h>
#include <oper/config_manager.h>
#include <oper/interface_common.h>
#include <oper/mirror_table.h>
#include <oper/sg.h>
#include <oper/tag.h>
#include <oper/bgp_as_service.h>
#include <init/agent_param.h>
#include "ifmap/ifmap_link.h"
#include <port_ipc/port_ipc_handler.h>
#include <port_ipc/port_subscribe_table.h>
Include dependency graph for vm_interface_config.cc:

Go to the source code of this file.

Macros

#define LOGICAL_ROUTER_NAME   "logical-router"
 
#define VIRTUAL_PORT_GROUP_CONFIG_NAME   "virtual-port-group"
 
#define VMI_NETWORK_ROUTER_INTERFACE   "network:router_interface"
 

Functions

static void AddFabricFloatingIp (Agent *agent, VmInterfaceConfigData *data, IpAddress src_ip)
 
static bool BuildFloatingIpVnVrf (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node, IFMapNode *vn_node)
 
static void BuildFloatingIpList (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildAliasIpList (InterfaceTable *intf_table, VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildStaticRouteList (VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildResolveRoute (VmInterfaceConfigData *data, IFMapNode *node)
 
static bool IsVlanSubInterface (VirtualMachineInterface *cfg)
 
static void BuildInterfaceConfigurationData (Agent *agent, IFMapNode *node, uint16_t *rx_vlan_id, uint16_t *tx_vlan_id, IFMapNode **li_node, IFMapNode **phy_interface, IFMapNode **phy_device)
 
static void BuildInterfaceConfigurationDataFromVpg (Agent *agent, IFMapNode *node, IFMapNode **vpg_node, IFMapNode **phy_interface, IFMapNode **phy_device)
 
static void BuildAllowedAddressPairRouteList (VirtualMachineInterface *cfg, VmInterfaceConfigData *data)
 
static void BuildVrfAndServiceVlanInfo (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildProxyArpFlags (Agent *agent, VmInterfaceConfigData *data, VirtualMachineInterface *cfg)
 
static bool ValidateFatFlowCfg (const boost::uuids::uuid &u, const ProtocolType *pt)
 
static void BuildFatFlowTable (Agent *agent, const boost::uuids::uuid &u, VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildInstanceIp (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildTagList (VmInterface::TagEntryList *tag_list, IFMapNode *node)
 
static void BuildSgList (VmInterfaceConfigData *data, IFMapNode *node)
 
static bool BuildBridgeDomainVrfTable (Agent *agent, IFMapNode *vn_node)
 
static bool BuildBridgeDomainVnTable (Agent *agent, IFMapNode *bridge_domain_node)
 
static void UpdateVmiSiMode (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildVmiSiMode (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static bool BuildLogicalRouterData (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildSiOtherVmi (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node, const string &s_intf_type)
 
static void BuildBridgeDomainTable (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static void CompareVnVm (const uuid &vmi_uuid, VmInterfaceConfigData *data, const PortSubscribeEntry *entry)
 
static void BuildVn (VmInterfaceConfigData *data, IFMapNode *node, const boost::uuids::uuid &u, VmInterface::TagEntryList *tag_list)
 
static void FillHbsInfo (VmInterfaceConfigData *data, IFMapNode *vn_node)
 
static void BuildProject (VmInterfaceConfigData *data, IFMapNode *node, const boost::uuids::uuid &u, VmInterface::TagEntryList *tag_list)
 
static void BuildQosConfig (VmInterfaceConfigData *data, IFMapNode *node)
 
static void BuildVm (VmInterfaceConfigData *data, IFMapNode *node, const boost::uuids::uuid &u, VmInterface::TagEntryList *tag_list)
 
static void ReadDhcpOptions (VirtualMachineInterface *cfg, VmInterfaceConfigData &data)
 
static void ReadAnalyzerNameAndCreate (Agent *agent, VirtualMachineInterface *cfg, VmInterfaceConfigData &data)
 
static void BuildVrfAssignRule (VirtualMachineInterface *cfg, VmInterfaceConfigData *data)
 
static IFMapNodeFindTarget (IFMapAgentTable *table, IFMapNode *node, const std::string &node_type)
 
static void ReadDhcpEnable (Agent *agent, VmInterfaceConfigData *data, IFMapNode *node)
 
static PhysicalRouter * BuildParentInfo (Agent *agent, VirtualMachineInterface *cfg, IFMapNode *node, IFMapNode *logical_node, IFMapNode *vpg_node, VmInterfaceConfigData *data, IFMapNode *parent_vmi_node, IFMapNode **phy_interface, IFMapNode **phy_device)
 
static void BuildEcmpHashingIncludeFields (VirtualMachineInterface *cfg, IFMapNode *vn_node, VmInterfaceConfigData *data)
 
static void ReadIgmpConfig (Agent *agent, const IFMapNode *vn_node, const VirtualMachineInterface *cfg, VmInterfaceConfigData *data)
 
static void ReadMaxFlowsConfig (const IFMapNode *vn_node, const VirtualMachineInterface *cfg, VmInterfaceConfigData *data)
 
static void BuildAttributes (Agent *agent, IFMapNode *node, VirtualMachineInterface *cfg, VmInterfaceConfigData *data)
 
static void UpdateAttributes (Agent *agent, VmInterfaceConfigData *data)
 
static void ComputeTypeInfo (Agent *agent, VmInterfaceConfigData *data, const PortSubscribeEntry *entry, PhysicalRouter *prouter, IFMapNode *node, IFMapNode *logical_node, IFMapNode *logical_router)
 
void CopyTagList (VmInterfaceConfigData *data, VmInterface::TagEntryList &tag_list, bool *label_added)
 
void CopyTag (VmInterfaceConfigData *data, VmInterface::TagEntryList &vmi_list, VmInterface::TagEntryList &vm_list, VmInterface::TagEntryList &vn_list, VmInterface::TagEntryList &project_list)
 
static bool DeleteVmi (InterfaceTable *table, const uuid &u, DBRequest *req)
 

Macro Definition Documentation

#define LOGICAL_ROUTER_NAME   "logical-router"

Definition at line 22 of file vm_interface_config.cc.

#define VIRTUAL_PORT_GROUP_CONFIG_NAME   "virtual-port-group"

Definition at line 23 of file vm_interface_config.cc.

#define VMI_NETWORK_ROUTER_INTERFACE   "network:router_interface"

Definition at line 25 of file vm_interface_config.cc.

Function Documentation

static void AddFabricFloatingIp ( Agent agent,
VmInterfaceConfigData data,
IpAddress  src_ip 
)
static

Definition at line 31 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildAliasIpList ( InterfaceTable intf_table,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 199 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildAllowedAddressPairRouteList ( VirtualMachineInterface *  cfg,
VmInterfaceConfigData data 
)
static

Definition at line 445 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildAttributes ( Agent agent,
IFMapNode node,
VirtualMachineInterface *  cfg,
VmInterfaceConfigData data 
)
static

Definition at line 1495 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildBridgeDomainTable ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 971 of file vm_interface_config.cc.

Here is the call graph for this function:

static bool BuildBridgeDomainVnTable ( Agent agent,
IFMapNode bridge_domain_node 
)
static

Definition at line 830 of file vm_interface_config.cc.

Here is the call graph for this function:

static bool BuildBridgeDomainVrfTable ( Agent agent,
IFMapNode vn_node 
)
static

Definition at line 804 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildEcmpHashingIncludeFields ( VirtualMachineInterface *  cfg,
IFMapNode vn_node,
VmInterfaceConfigData data 
)
static

Definition at line 1417 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildFatFlowTable ( Agent agent,
const boost::uuids::uuid u,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 648 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildFloatingIpList ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 151 of file vm_interface_config.cc.

Here is the call graph for this function:

static bool BuildFloatingIpVnVrf ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node,
IFMapNode vn_node 
)
static

Definition at line 50 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildInstanceIp ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 671 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildInterfaceConfigurationData ( Agent agent,
IFMapNode node,
uint16_t *  rx_vlan_id,
uint16_t *  tx_vlan_id,
IFMapNode **  li_node,
IFMapNode **  phy_interface,
IFMapNode **  phy_device 
)
static

Definition at line 364 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildInterfaceConfigurationDataFromVpg ( Agent agent,
IFMapNode node,
IFMapNode **  vpg_node,
IFMapNode **  phy_interface,
IFMapNode **  phy_device 
)
static

Definition at line 408 of file vm_interface_config.cc.

Here is the call graph for this function:

static bool BuildLogicalRouterData ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 912 of file vm_interface_config.cc.

Here is the call graph for this function:

static PhysicalRouter* BuildParentInfo ( Agent agent,
VirtualMachineInterface *  cfg,
IFMapNode node,
IFMapNode logical_node,
IFMapNode vpg_node,
VmInterfaceConfigData data,
IFMapNode parent_vmi_node,
IFMapNode **  phy_interface,
IFMapNode **  phy_device 
)
static

Definition at line 1359 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildProject ( VmInterfaceConfigData data,
IFMapNode node,
const boost::uuids::uuid u,
VmInterface::TagEntryList tag_list 
)
static

Definition at line 1143 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildProxyArpFlags ( Agent agent,
VmInterfaceConfigData data,
VirtualMachineInterface *  cfg 
)
static

Definition at line 587 of file vm_interface_config.cc.

static void BuildQosConfig ( VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 1176 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildResolveRoute ( VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 338 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildSgList ( VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 789 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildSiOtherVmi ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node,
const string &  s_intf_type 
)
static

Definition at line 927 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildStaticRouteList ( VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 295 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildTagList ( VmInterface::TagEntryList tag_list,
IFMapNode node 
)
static

Definition at line 775 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildVm ( VmInterfaceConfigData data,
IFMapNode node,
const boost::uuids::uuid u,
VmInterface::TagEntryList tag_list 
)
static

Definition at line 1185 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildVmiSiMode ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 893 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildVn ( VmInterfaceConfigData data,
IFMapNode node,
const boost::uuids::uuid u,
VmInterface::TagEntryList tag_list 
)
static

Definition at line 1047 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildVrfAndServiceVlanInfo ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 480 of file vm_interface_config.cc.

Here is the call graph for this function:

static void BuildVrfAssignRule ( VirtualMachineInterface *  cfg,
VmInterfaceConfigData data 
)
static

Definition at line 1293 of file vm_interface_config.cc.

static void CompareVnVm ( const uuid vmi_uuid,
VmInterfaceConfigData data,
const PortSubscribeEntry entry 
)
static

Definition at line 1019 of file vm_interface_config.cc.

Here is the call graph for this function:

static void ComputeTypeInfo ( Agent agent,
VmInterfaceConfigData data,
const PortSubscribeEntry entry,
PhysicalRouter *  prouter,
IFMapNode node,
IFMapNode logical_node,
IFMapNode logical_router 
)
static

Definition at line 1537 of file vm_interface_config.cc.

Here is the call graph for this function:

void CopyTag ( VmInterfaceConfigData data,
VmInterface::TagEntryList vmi_list,
VmInterface::TagEntryList vm_list,
VmInterface::TagEntryList vn_list,
VmInterface::TagEntryList project_list 
)

Definition at line 1658 of file vm_interface_config.cc.

Here is the call graph for this function:

void CopyTagList ( VmInterfaceConfigData data,
VmInterface::TagEntryList tag_list,
bool *  label_added 
)

Definition at line 1641 of file vm_interface_config.cc.

static bool DeleteVmi ( InterfaceTable table,
const uuid u,
DBRequest req 
)
static

Definition at line 1956 of file vm_interface_config.cc.

Here is the call graph for this function:

static void FillHbsInfo ( VmInterfaceConfigData data,
IFMapNode vn_node 
)
static

Definition at line 1104 of file vm_interface_config.cc.

Here is the call graph for this function:

static IFMapNode* FindTarget ( IFMapAgentTable table,
IFMapNode node,
const std::string &  node_type 
)
static

Definition at line 1306 of file vm_interface_config.cc.

Here is the call graph for this function:

static bool IsVlanSubInterface ( VirtualMachineInterface *  cfg)
static

Definition at line 353 of file vm_interface_config.cc.

static void ReadAnalyzerNameAndCreate ( Agent agent,
VirtualMachineInterface *  cfg,
VmInterfaceConfigData data 
)
static

Definition at line 1220 of file vm_interface_config.cc.

Here is the call graph for this function:

static void ReadDhcpEnable ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 1317 of file vm_interface_config.cc.

Here is the call graph for this function:

static void ReadDhcpOptions ( VirtualMachineInterface *  cfg,
VmInterfaceConfigData data 
)
static

Definition at line 1213 of file vm_interface_config.cc.

Here is the call graph for this function:

static void ReadIgmpConfig ( Agent agent,
const IFMapNode vn_node,
const VirtualMachineInterface *  cfg,
VmInterfaceConfigData data 
)
static

Definition at line 1449 of file vm_interface_config.cc.

Here is the call graph for this function:

static void ReadMaxFlowsConfig ( const IFMapNode vn_node,
const VirtualMachineInterface *  cfg,
VmInterfaceConfigData data 
)
static

Definition at line 1476 of file vm_interface_config.cc.

Here is the call graph for this function:

static void UpdateAttributes ( Agent agent,
VmInterfaceConfigData data 
)
static

Definition at line 1522 of file vm_interface_config.cc.

Here is the call graph for this function:

static void UpdateVmiSiMode ( Agent agent,
VmInterfaceConfigData data,
IFMapNode node 
)
static

Definition at line 855 of file vm_interface_config.cc.

Here is the call graph for this function:

static bool ValidateFatFlowCfg ( const boost::uuids::uuid u,
const ProtocolType *  pt 
)
static

Definition at line 601 of file vm_interface_config.cc.