route_table_mgr::route_table_mgr() : netlink_socket_mgr<route_val>(ROUTE_DATA_TYPE), cache_table_mgr<route_rule_table_key, route_val*>("route_table_mgr") { rt_mgr_logdbg(""); //Read Route table from kernel and save it in local variable. update_tbl(); // create route_entry for each net_dev- needed for receiving port up/down events for net_dev_entry route_val *p_val; for (int i = 0; i < m_tab.entries_num; i++) { p_val = &m_tab.value[i]; in_addr_t src_addr = p_val->get_src_addr(); std::tr1::unordered_map<in_addr_t, route_entry*>::iterator iter = m_rte_list_for_each_net_dev.find(src_addr); // if src_addr of interface exists in the map, no need to create another route_entry if (iter == m_rte_list_for_each_net_dev.end()) { in_addr_t dst_ip = src_addr; in_addr_t src_ip = 0; uint8_t tos = 0; m_rte_list_for_each_net_dev.insert(pair<in_addr_t, route_entry*> (src_addr, create_new_entry(route_rule_table_key(dst_ip, src_ip, tos), NULL))); } } //Print table print_val_tbl(); // register to netlink event g_p_netlink_handler->register_event(nlgrpROUTE, this); rt_mgr_logdbg("Registered to g_p_netlink_handler"); rt_mgr_logdbg("Done"); }
ib_ctx_handler_collection::ib_ctx_handler_collection() { ibchc_logdbg(""); /* Read ib table from kernel and save it in local variable. */ update_tbl(); //Print table print_val_tbl(); ibchc_logdbg("Done"); }
rule_table_mgr::rule_table_mgr() : netlink_socket_mgr<rule_val>(RULE_DATA_TYPE), cache_table_mgr<route_rule_table_key, std::deque<rule_val*>*>("rule_table_mgr") { rr_mgr_logdbg(""); //Read Rule table from kernel and save it in local variable. update_tbl(); //Print table print_val_tbl(); rr_mgr_logdbg("Done"); }