Line data Source code
1 : /* 2 : * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. 3 : * Copyright Contributors to the OpenSDN project 4 : */ 5 : 6 : #ifndef vnsw_agent_init_cfg_hpp 7 : #define vnsw_agent_init_cfg_hpp 8 : 9 : #include <cmn/agent_cmn.h> 10 : #include <ifmap/ifmap_agent_table.h> 11 : #include <sandesh/sandesh_trace.h> 12 : 13 : class CfgFilter; 14 : class CfgListener; 15 : class MirrorCfgTable; 16 : class IntfMirrorCfgTable; 17 : 18 : class AgentConfig { 19 : public: 20 : AgentConfig(Agent *agent); 21 : virtual ~AgentConfig(); 22 : 23 4972 : IFMapAgentTable *cfg_vm_interface_table() const { 24 4972 : return cfg_vm_interface_table_; 25 : } 26 4793 : IFMapAgentTable *cfg_vm_table() const {return cfg_vm_table_;} 27 14430 : IFMapAgentTable *cfg_vn_table() const {return cfg_vn_table_;} 28 4282 : IFMapAgentTable *cfg_sg_table() const {return cfg_sg_table_;} 29 1864 : IFMapAgentTable *cfg_acl_table() const {return cfg_acl_table_;} 30 3817 : IFMapAgentTable *cfg_vrf_table() const {return cfg_vrf_table_;} 31 4282 : IFMapAgentTable *cfg_instanceip_table() const { 32 4282 : return cfg_instanceip_table_; 33 : } 34 4282 : IFMapAgentTable *cfg_floatingip_table() const { 35 4282 : return cfg_floatingip_table_; 36 : } 37 4282 : IFMapAgentTable *cfg_aliasip_table() const { 38 4282 : return cfg_aliasip_table_; 39 : } 40 191 : IFMapAgentTable *cfg_floatingip_pool_table() const { 41 191 : return cfg_floatingip_pool_table_; 42 : } 43 0 : IFMapAgentTable *cfg_aliasip_pool_table() const { 44 0 : return cfg_aliasip_pool_table_; 45 : } 46 : IFMapAgentTable *cfg_network_ipam_table() const { 47 : return cfg_network_ipam_table_; 48 : } 49 6309 : IFMapAgentTable *cfg_vn_network_ipam_table() const { 50 6309 : return cfg_vn_network_ipam_table_; 51 : } 52 4282 : IFMapAgentTable *cfg_vm_port_vrf_table() const { 53 4282 : return cfg_vm_port_vrf_table_; 54 : } 55 4282 : IFMapAgentTable *cfg_route_table() const { 56 4282 : return cfg_route_table_; 57 : } 58 : 59 9 : IFMapAgentTable *cfg_service_template_table() const { 60 9 : return cfg_service_template_table_; 61 : } 62 : 63 4282 : IFMapAgentTable *cfg_subnet_table() const { 64 4282 : return cfg_subnet_table_; 65 : } 66 : 67 4289 : IFMapAgentTable *cfg_logical_port_table() const { 68 4289 : return cfg_logical_port_table_; 69 : } 70 : 71 9 : IFMapAgentTable *cfg_service_instance_table() const { 72 9 : return cfg_service_instance_table_; 73 : } 74 : 75 9 : IFMapAgentTable *cfg_security_group_table() const { 76 9 : return cfg_security_group_table_; 77 : } 78 : 79 5 : IFMapAgentTable *cfg_physical_device_table() const { 80 5 : return cfg_physical_device_table_; 81 : } 82 : 83 6103 : IFMapAgentTable *cfg_qos_table() const { 84 6103 : return cfg_qos_table_; 85 : } 86 : 87 0 : IFMapAgentTable *cfg_global_qos_table() const { 88 0 : return cfg_global_qos_table_; 89 : } 90 : 91 4 : IFMapAgentTable *cfg_qos_queue_table() const { 92 4 : return cfg_qos_queue_table_; 93 : } 94 : 95 4 : IFMapAgentTable *cfg_forwarding_class_table() const { 96 4 : return cfg_forwarding_class_table_; 97 : } 98 : 99 4 : IFMapAgentTable *cfg_bridge_domain_table() const { 100 4 : return cfg_bridge_domain_table_; 101 : } 102 : 103 4282 : IFMapAgentTable *cfg_vm_port_bridge_domain_table() const { 104 4282 : return cfg_vm_port_bridge_domain_table_; 105 : } 106 : 107 1821 : IFMapAgentTable *cfg_health_check_table() const { 108 1821 : return cfg_health_check_table_; 109 : } 110 : 111 4 : IFMapAgentTable *cfg_policy_set_table() const { 112 4 : return cfg_policy_set_table_; 113 : } 114 : 115 4 : IFMapAgentTable *cfg_firewall_policy_table() const { 116 4 : return cfg_firewall_policy_table_; 117 : } 118 : 119 4 : IFMapAgentTable *cfg_firewall_rule_table() const { 120 4 : return cfg_firewall_rule_table_; 121 : } 122 : 123 0 : IFMapAgentTable *cfg_service_group_table() const { 124 0 : return cfg_service_group_table_; 125 : } 126 : 127 0 : IFMapAgentTable *cfg_address_group_table() const { 128 0 : return cfg_address_group_table_; 129 : } 130 : 131 0 : IFMapAgentTable *cfg_firewall_policy_firewall_rule_table() const { 132 0 : return cfg_firewall_policy_firewall_rule_table_; 133 : } 134 : 135 10077 : IFMapAgentTable *cfg_tag_table() const { 136 10077 : return cfg_tag_table_; 137 : } 138 : 139 0 : IFMapAgentTable *cfg_policy_set_firewall_policy_table() const { 140 0 : return cfg_policy_set_firewall_policy_table_; 141 : } 142 : 143 0 : IFMapAgentTable *cfg_policy_management_table() const { 144 0 : return cfg_policy_management_table_; 145 : } 146 : 147 4282 : IFMapAgentTable *cfg_project_table() const { 148 4282 : return cfg_project_table_; 149 : } 150 : 151 6103 : IFMapAgentTable *cfg_slo_table() const { 152 6103 : return cfg_slo_table_; 153 : } 154 : 155 4286 : IFMapAgentTable *cfg_port_tuple_table() const { 156 4286 : return cfg_port_tuple_table_; 157 : } 158 : 159 1821 : IFMapAgentTable *cfg_multicast_policy_table() const { 160 1821 : return cfg_multicast_policy_table_; 161 : } 162 : 163 0 : Agent *agent() const { return agent_; } 164 : CfgFilter *cfg_filter() const { return cfg_filter_.get(); } 165 0 : IFMapAgentParser *cfg_parser() const { return cfg_parser_.get(); } 166 4 : DBGraph *cfg_graph() const { return cfg_graph_.get(); } 167 : MirrorCfgTable *cfg_mirror_table() const { return cfg_mirror_table_.get(); } 168 : 169 : IntfMirrorCfgTable *cfg_intf_mirror_table() const { 170 : return cfg_intf_mirror_table_.get(); 171 : } 172 : 173 : void CreateDBTables(DB *db); 174 : void RegisterDBClients(DB *db); 175 : void Register(const char *node_name, AgentDBTable *table, 176 : int need_property_id); 177 : void Init(); 178 : void InitDone(); 179 : void Shutdown(); 180 : private: 181 : Agent *agent_; 182 : std::unique_ptr<CfgFilter> cfg_filter_; 183 : std::unique_ptr<IFMapAgentParser> cfg_parser_; 184 : std::unique_ptr<DBGraph> cfg_graph_; 185 : std::unique_ptr<MirrorCfgTable> cfg_mirror_table_; 186 : std::unique_ptr<IntfMirrorCfgTable> cfg_intf_mirror_table_; 187 : 188 : DBTableBase::ListenerId lid_; 189 : 190 : IFMapAgentTable *cfg_vm_interface_table_; 191 : IFMapAgentTable *cfg_vm_table_; 192 : IFMapAgentTable *cfg_vn_table_; 193 : IFMapAgentTable *cfg_sg_table_; 194 : IFMapAgentTable *cfg_acl_table_; 195 : IFMapAgentTable *cfg_vrf_table_; 196 : IFMapAgentTable *cfg_instanceip_table_; 197 : IFMapAgentTable *cfg_floatingip_table_; 198 : IFMapAgentTable *cfg_aliasip_table_; 199 : IFMapAgentTable *cfg_floatingip_pool_table_; 200 : IFMapAgentTable *cfg_aliasip_pool_table_; 201 : IFMapAgentTable *cfg_network_ipam_table_; 202 : IFMapAgentTable *cfg_vn_network_ipam_table_; 203 : IFMapAgentTable *cfg_vm_port_vrf_table_; 204 : IFMapAgentTable *cfg_route_table_; 205 : IFMapAgentTable *cfg_service_template_table_; 206 : IFMapAgentTable *cfg_subnet_table_; 207 : IFMapAgentTable *cfg_logical_port_table_; 208 : IFMapAgentTable *cfg_loadbalancer_table_; 209 : IFMapAgentTable *cfg_loadbalancer_pool_table_; 210 : IFMapAgentTable *cfg_service_instance_table_; 211 : IFMapAgentTable *cfg_security_group_table_; 212 : IFMapAgentTable *cfg_physical_device_table_; 213 : IFMapAgentTable *cfg_health_check_table_; 214 : IFMapAgentTable *cfg_qos_table_; 215 : IFMapAgentTable *cfg_global_qos_table_; 216 : IFMapAgentTable *cfg_qos_queue_table_; 217 : IFMapAgentTable *cfg_forwarding_class_table_; 218 : IFMapAgentTable *cfg_bridge_domain_table_; 219 : IFMapAgentTable *cfg_vm_port_bridge_domain_table_; 220 : IFMapAgentTable *cfg_policy_set_table_; 221 : IFMapAgentTable *cfg_firewall_policy_table_; 222 : IFMapAgentTable *cfg_firewall_rule_table_; 223 : IFMapAgentTable *cfg_service_group_table_; 224 : IFMapAgentTable *cfg_address_group_table_; 225 : IFMapAgentTable *cfg_firewall_policy_firewall_rule_table_; 226 : IFMapAgentTable *cfg_tag_table_; 227 : IFMapAgentTable *cfg_policy_set_firewall_policy_table_; 228 : IFMapAgentTable *cfg_policy_management_table_; 229 : IFMapAgentTable *cfg_project_table_; 230 : IFMapAgentTable *cfg_slo_table_; 231 : IFMapAgentTable *cfg_port_tuple_table_; 232 : IFMapAgentTable *cfg_multicast_policy_table_; 233 : DISALLOW_COPY_AND_ASSIGN(AgentConfig); 234 : }; 235 : 236 : extern SandeshTraceBufferPtr CfgTraceBuf; 237 : #define CONFIG_TRACE(obj, ...) \ 238 : do {\ 239 : Config##obj::TraceMsg(CfgTraceBuf, __FILE__, __LINE__, ##__VA_ARGS__);\ 240 : } while (false) 241 : 242 : #endif // vnsw_agent_init_cfg_hpp