SimpleForwardingModule::~SimpleForwardingModule() { // of_action_output_delete(tempOutPut_OF_1_0); // of_action_output_delete(tempOutPut_OF_1_3); of_list_action_delete(tempActionList_OF_1_0); of_list_action_delete(tempActionList_OF_1_3); of_packet_out_delete(tempPacketOut_OF_1_0); of_packet_out_delete(tempPacketOut_OF_1_3); };
static int test_of_list_action_OF_VERSION_1_2(void) { of_list_action_t *list; int value = 1; list = of_list_action_new(OF_VERSION_1_2); TEST_ASSERT(list != NULL); TEST_ASSERT(list->version == OF_VERSION_1_2); TEST_ASSERT(list->length == 0); TEST_ASSERT(list->parent == NULL); TEST_ASSERT(list->object_id == OF_LIST_ACTION); value = list_setup_of_list_action_OF_VERSION_1_2(list, value); TEST_ASSERT(value != 0); /* Now check values */ value = 1; value = list_check_of_list_action_OF_VERSION_1_2(list, value); TEST_ASSERT(value != 0); of_list_action_delete(list); return TEST_PASS; }
static int test_stats_entry_setup_from_add(void) { of_flow_add_t *add; of_flow_stats_entry_t *entry; of_match_t m1, m2; of_list_action_t *list; of_list_action_t list_out; TEST_ASSERT((add = of_flow_add_new(OF_VERSION_1_0)) != NULL); TEST_ASSERT((entry = of_flow_stats_entry_new(OF_VERSION_1_0)) != NULL); TEST_ASSERT(of_flow_add_OF_VERSION_1_0_populate(add, 1) != 0); TEST_ASSERT(of_flow_add_match_get(add, &m1) == 0); TEST_ASSERT(of_flow_stats_entry_setup_from_flow_add(entry, add, NULL) == 0); TEST_ASSERT(of_flow_stats_entry_match_get(entry, &m2) == 0); TEST_ASSERT(memcmp(&m1, &m2, sizeof(m1)) == 0); of_flow_add_delete(add); of_flow_stats_entry_delete(entry); /* @todo check action lists agree */ /* Same with an external action list */ TEST_ASSERT((add = of_flow_add_new(OF_VERSION_1_0)) != NULL); TEST_ASSERT((entry = of_flow_stats_entry_new(OF_VERSION_1_0)) != NULL); TEST_ASSERT(of_flow_add_OF_VERSION_1_0_populate(add, 1) != 0); TEST_ASSERT(of_flow_add_match_get(add, &m1) == 0); list = of_list_action_new(OF_VERSION_1_0); TEST_ASSERT(list != NULL); TEST_ASSERT(of_list_action_OF_VERSION_1_0_populate(list, 1) != 0); /* Verify matches agree */ TEST_ASSERT(of_flow_stats_entry_setup_from_flow_add(entry, add, list) == 0); TEST_ASSERT(of_flow_stats_entry_match_get(entry, &m2) == 0); TEST_ASSERT(memcmp(&m1, &m2, sizeof(m1)) == 0); of_list_action_init(&list_out, OF_VERSION_1_0, 0, 1); of_flow_stats_entry_actions_bind(entry, &list_out); /* Verify lists agree */ TEST_ASSERT(list->length == list_out.length); TEST_ASSERT(memcmp(WBUF_BUF(list->wire_object.wbuf), WBUF_BUF(list_out.wire_object.wbuf), list->length)); of_flow_add_delete(add); of_list_action_delete(list); of_flow_stats_entry_delete(entry); return TEST_PASS; }