void test_ofp_version_bitmap(void) { int version; uint32_t bitmap; TEST_ASSERT_NOT_NULL(bridge); /* Setting versions. */ for (version = OPENFLOW_VERSION_1_3; version <= OPENFLOW_VERSION_1_4; version++) { TEST_ASSERT_TRUE(LAGOPUS_RESULT_OK == bridge_ofp_version_bitmap_set(bridge, version)); TEST_ASSERT_TRUE(LAGOPUS_RESULT_OK == bridge_ofp_version_bitmap_get(bridge, &bitmap)); TEST_ASSERT_TRUE(0 != (bitmap & (1 << version))); } /* Clearing versions. */ for (version = OPENFLOW_VERSION_1_4; version >= OPENFLOW_VERSION_1_3; version--) { TEST_ASSERT_TRUE(LAGOPUS_RESULT_OK == bridge_ofp_version_bitmap_unset(bridge, version)); TEST_ASSERT_TRUE(LAGOPUS_RESULT_OK == bridge_ofp_version_bitmap_get(bridge, &bitmap)); TEST_ASSERT_TRUE(0 == (bitmap & (1 << version))); } }
lagopus_result_t dpmgr_bridge_ofp_version_bitmap_get(uint64_t dpid, uint32_t *version_bitmap) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; struct dpmgr *dpmgr = NULL; struct bridge *bridge = NULL; dpmgr = dpmgr_get_instance(); if (dpmgr != NULL) { bridge = bridge_lookup_by_dpid(&dpmgr->bridge_list, dpid); if (bridge != NULL) { ret = bridge_ofp_version_bitmap_get(bridge, version_bitmap); } else { lagopus_msg_warning("Not found bridge.\n"); ret = LAGOPUS_RESULT_NOT_FOUND; } } else { lagopus_msg_warning("Not found dpmgr.\n"); ret = LAGOPUS_RESULT_NOT_FOUND; } return ret; }