bool VlanMgr::addHostVlan(int vlan_id) { SWSS_LOG_ENTER(); // The command should be generated as: // /bin/bash -c "/sbin/bridge vlan add vid {{vlan_id}} dev Bridge self && // /sbin/ip link add link Bridge up name Vlan{{vlan_id}} address {{gMacAddress}} type vlan id {{vlan_id}}" const std::string cmds = std::string("") + BASH_CMD + " -c \"" + BRIDGE_CMD + " vlan add vid " + std::to_string(vlan_id) + " dev " + DOT1Q_BRIDGE_NAME + " self && " + IP_CMD + " link add link " + DOT1Q_BRIDGE_NAME + " up" + " name " + VLAN_PREFIX + std::to_string(vlan_id) + " address " + gMacAddress.to_string() + " type vlan id " + std::to_string(vlan_id) + "\""; std::string res; EXEC_WITH_ERROR_THROW(cmds, res); return true; }
static void SetUpTestCase(void) { mac = MacAddress("00:F2:F2:F2:F2:F2"); LOGG(TEST_INFO, FRAMEWORK, "init mac %s\n", mac.to_string().c_str()); LOGG(TEST_INFO, FRAMEWORK, "sai_api_initialize\n"); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_initialize(0, (service_method_table_t *)&test_services)); LOGG(TEST_INFO, FRAMEWORK, "sai_api_query SAI_API_SWITCH, SAI_API_PORT, ...\n"); //query API methods of all types ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_SWITCH, (void**)&sai_switch_api)); ASSERT_TRUE(sai_switch_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_PORT, (void**)&sai_port_api)); ASSERT_TRUE(sai_port_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_VLAN, (void**)&sai_vlan_api)); ASSERT_TRUE(sai_vlan_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_VIRTUAL_ROUTER, (void**)&sai_vr_api)); ASSERT_TRUE(sai_vr_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_ROUTER_INTERFACE, (void**)&sai_rif_api)); ASSERT_TRUE(sai_rif_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_HOST_INTERFACE, (void**)&sai_hif_api)); ASSERT_TRUE(sai_hif_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_NEIGHBOR, (void**)&sai_neighbor_api)); ASSERT_TRUE(sai_neighbor_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_ROUTE, (void**)&sai_route_api)); ASSERT_TRUE(sai_route_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_NEXT_HOP, (void**)&sai_next_hop_api)); ASSERT_TRUE(sai_next_hop_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_NEXT_HOP_GROUP, (void**)&sai_next_hop_group_api)); ASSERT_TRUE(sai_next_hop_group_api != NULL); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_api_query(SAI_API_FDB, (void**)&sai_fdb_api)); ASSERT_TRUE(sai_fdb_api != NULL); LOGG(TEST_INFO, FRAMEWORK, "sai_log_set SAI_API_SWITCH, SAI_API_PORT, ...\n"); //set log ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_SWITCH, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_PORT, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_VLAN, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_VIRTUAL_ROUTER, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_ROUTER_INTERFACE, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_HOST_INTERFACE, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_NEIGHBOR, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_ROUTE, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_NEXT_HOP, SAI_LOG_DEBUG)); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_log_set(SAI_API_NEXT_HOP_GROUP, SAI_LOG_DEBUG)); LOGG(TEST_INFO, FRAMEWORK, "sai_switch_api->initialize_switch \n"); ASSERT_TRUE(sai_switch_api->initialize_switch); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_switch_api->initialize_switch(0, "0xb850", "", &plat_switch_notification_handlers)); sai_attribute_t attr; attr.id = SAI_SWITCH_ATTR_SRC_MAC_ADDRESS; memcpy(attr.value.mac, mac.to_bytes(), 6); ASSERT_TRUE(sai_switch_api->set_switch_attribute != NULL); LOGG(TEST_INFO, FRAMEWORK, "sai_switch_api->set_switch_attribute SAI_SWITCH_ATTR_SRC_MAC_ADDRESS %s\n", mac.to_string().c_str()); ASSERT_EQ(SAI_STATUS_SUCCESS, sai_switch_api->set_switch_attribute(&attr)); LOGG(TEST_INFO, FRAMEWORK, "Create neighbor_mgr, nexthopgrp_mgr and route_mgr\n"); nexthop_mgr = new NextHopMgr(); neighbor_mgr = new NeighborMgr(nexthop_mgr); nexthopgrp_mgr = new NextHopGrpMgr(neighbor_mgr); route_mgr = new RouteMgr(neighbor_mgr, nexthopgrp_mgr); fdb_mgr = new FdbMgr(); LOGG(TEST_INFO, FRAMEWORK, "Set Up L3 Interfaces\n"); ASSERT_EQ(true, basic_router_setup()); }