struct channel * create_data_channel(void) { static uint8_t cnt; char buf[256]; struct channel *channel; struct session *session; struct addrunion addr; struct port port; uint64_t dpid = 0xabc; uint8_t port_hw_addr[OFP_ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; if (s_dpmgr == NULL) { s_dpmgr = dpmgr_alloc(); dpmgr_bridge_add(s_dpmgr, "br0", dpid); dpmgr_controller_add(s_dpmgr, "br0", "127.0.0.1"); port.ofp_port.port_no = 0; memcpy(port.ofp_port.hw_addr, port_hw_addr, OFP_ETH_ALEN); port.ifindex = 0; dpmgr_port_add(s_dpmgr, &port); dpmgr_bridge_port_add(s_dpmgr, "br0", 0, 0); } if (s_bridge == NULL) { s_bridge = dpmgr_bridge_lookup(s_dpmgr, "br0"); } if (s_event_manager == NULL) { s_event_manager = event_manager_alloc(); channel_mgr_initialize(s_event_manager); } snprintf(buf, sizeof(buf), "127.0.0.%u", cnt++);//XXX addrunion_ipv4_set(&addr, buf); channel_mgr_channel_add(s_bridge, dpid, &addr); channel_mgr_channel_lookup(s_bridge, &addr, &channel); session = channel_session_get(channel); session_write_set(session, s_write_tcp); session_sockfd_set(session, 3); channel_version_set(channel, 0x04); channel_xid_set(channel, s_xid); return channel; }
void test_ofp_port_stats_reply_create_null(void) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; struct event_manager *em = event_manager_alloc(); struct channel *channel = channel_alloc_ip4addr("127.0.0.1", "1000", em, 0x01); struct pbuf_list *pbuf_list = NULL; struct port_stats_list port_stats_list; struct ofp_header xid_header; ret = ofp_port_stats_reply_create(NULL, &pbuf_list, &port_stats_list, &xid_header); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (channel)"); ret = ofp_port_stats_reply_create(channel, NULL, &port_stats_list, &xid_header); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (pbuf)"); ret = ofp_port_stats_reply_create(channel, &pbuf_list, NULL, &xid_header); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (port_stats_list)"); ret = ofp_port_stats_reply_create(channel, &pbuf_list, &port_stats_list, NULL); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (xid-header)"); channel_free(channel); event_manager_free(em); }
void test_ofp_queue_get_config_reply_create_null(void) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; struct event_manager *em = event_manager_alloc(); struct channel *channel = channel_alloc_ip4addr("127.0.0.1", "1000", em, 0x01); struct pbuf *pbuf = pbuf_alloc(65535); static struct packet_queue_list packet_queue_list; struct ofp_header ofp_header; ret = ofp_queue_get_config_reply_create(NULL, &pbuf, 0, &packet_queue_list, &ofp_header); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (channel)"); ret = ofp_queue_get_config_reply_create(channel, NULL, 0, &packet_queue_list, &ofp_header); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (pbuf)"); ret = ofp_queue_get_config_reply_create(channel, &pbuf, 0, NULL, &ofp_header); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (packet_queue_list)"); ret = ofp_queue_get_config_reply_create(channel, &pbuf, 0, &packet_queue_list, NULL); TEST_ASSERT_EQUAL_MESSAGE(LAGOPUS_RESULT_INVALID_ARGS, ret, "NULL-check error. (ofp_header)"); channel_free(channel); pbuf_free(pbuf); event_manager_free(em); }
void test_ofp_barrier_reply_send_null(void) { lagopus_result_t ret; struct eventq_data *ed; uint64_t dpid = 0x10; struct event_manager *em = event_manager_alloc(); struct channel *channel = channel_alloc_ip4addr("127.0.0.1", "1000", em, 0x01); ed = create_data(OFPT_BARRIER_REPLY); ret = ofp_barrier_reply_send(NULL, &ed->barrier, dpid); TEST_ASSERT_EQUAL_MESSAGE(ret, LAGOPUS_RESULT_INVALID_ARGS, "ofp_barrier_reply_send error."); ret = ofp_barrier_reply_send(channel, NULL, dpid); TEST_ASSERT_EQUAL_MESSAGE(ret, LAGOPUS_RESULT_INVALID_ARGS, "ofp_barrier_reply_send error."); /* after. */ ofp_barrier_free(ed); channel_free(channel); event_manager_free(em); }
struct channel * create_data_channel(void) { static uint8_t cnt; char buf[256]; struct channel *channel; lagopus_session_t session; struct addrunion addr; uint64_t dpid = 0xabc; if (s_is_init == false) { s_is_init = true; /* init dataplane. */ TEST_ASSERT_EQUAL(LAGOPUS_RESULT_OK, dp_api_init()); /* interface. */ s_interface_info.type = DATASTORE_INTERFACE_TYPE_ETHERNET_RAWSOCK; s_interface_info.eth_rawsock.port_number = 0; s_interface_info.eth_dpdk_phy.device = strdup("eth0"); if (s_interface_info.eth_dpdk_phy.device == NULL) { TEST_FAIL_MESSAGE("device is NULL."); } TEST_ASSERT_EQUAL(LAGOPUS_RESULT_OK, dp_interface_create(interface_name)); dp_interface_info_set(interface_name, &s_interface_info); /* port. */ TEST_ASSERT_EQUAL(LAGOPUS_RESULT_OK, dp_port_create(port_name)); TEST_ASSERT_EQUAL(LAGOPUS_RESULT_OK, dp_port_interface_set(port_name, interface_name)); /* bridge. */ ofp_bridgeq_mgr_initialize(NULL); s_bridge_info.dpid = dpid; s_bridge_info.fail_mode = DATASTORE_BRIDGE_FAIL_MODE_SECURE; s_bridge_info.max_buffered_packets = UINT32_MAX; s_bridge_info.max_ports = UINT16_MAX; s_bridge_info.max_tables = UINT8_MAX; s_bridge_info.max_flows = UINT32_MAX; s_bridge_info.capabilities = UINT64_MAX; s_bridge_info.action_types = UINT64_MAX; s_bridge_info.instruction_types = UINT64_MAX; s_bridge_info.reserved_port_types = UINT64_MAX; s_bridge_info.group_types = UINT64_MAX; s_bridge_info.group_capabilities = UINT64_MAX; TEST_ASSERT_EQUAL(LAGOPUS_RESULT_OK, dp_bridge_create(bridge_name, &s_bridge_info)); TEST_ASSERT_EQUAL(LAGOPUS_RESULT_OK, dp_bridge_port_set(bridge_name, port_name, 0)); TEST_ASSERT_EQUAL(LAGOPUS_RESULT_OK, ofp_bridgeq_mgr_bridge_register( dpid, bridge_name, &s_bridge_info, &s_queue_info)); } if (s_event_manager == NULL) { s_event_manager = event_manager_alloc(); channel_mgr_initialize(s_event_manager); } snprintf(buf, sizeof(buf), "127.0.0.%u", cnt++);//XXX addrunion_ipv4_set(&addr, buf); channel_mgr_channel_add(bridge_name, dpid, &addr); channel_mgr_channel_lookup(bridge_name, &addr, &channel); session = channel_session_get(channel); session_write_set(session, s_write_tcp); session_sockfd_set(session, 3); channel_version_set(channel, 0x04); channel_xid_set(channel, s_xid); return channel; }