Example #1
0
int ofp_init_local(void)
{
	/* Lookup shared memories */
	HANDLE_ERROR(ofp_global_config_lookup_shared_memory());
	HANDLE_ERROR(ofp_portconf_lookup_shared_memory());
	HANDLE_ERROR(ofp_route_lookup_shared_memory());
	HANDLE_ERROR(ofp_avl_lookup_shared_memory());
	HANDLE_ERROR(ofp_reassembly_lookup_shared_memory());
	HANDLE_ERROR(ofp_pcap_lookup_shared_memory());
	HANDLE_ERROR(ofp_stat_lookup_shared_memory());
	HANDLE_ERROR(ofp_socket_lookup_shared_memory());
	HANDLE_ERROR(ofp_timer_lookup_shared_memory());
	HANDLE_ERROR(ofp_hook_lookup_shared_memory());
	HANDLE_ERROR(ofp_arp_lookup_shared_memory());
	HANDLE_ERROR(ofp_vxlan_lookup_shared_memory());
	HANDLE_ERROR(ofp_arp_init_local());

	return 0;
}
Example #2
0
static int
init_suite(void)
{
	odp_pool_param_t pool_params;
	ofp_pkt_hook pkt_hook[OFP_HOOK_MAX];
	odp_pool_t pool;
	odp_instance_t instance;

	/* Init ODP before calling anything else */
	if (odp_init_global(&instance, NULL, NULL)) {
		OFP_ERR("Error: ODP global init failed.\n");
		return -1;
	}

	/* Init this thread */
	if (odp_init_local(instance, ODP_THREAD_CONTROL)) {
		OFP_ERR("Error: ODP local init failed.\n");
		return -1;
	}

	memset(pkt_hook, 0, sizeof(pkt_hook));
	pkt_hook[OFP_HOOK_OUT_IPv4] = fastpath_hook_out_IPv4;
#ifdef INET6
	pkt_hook[OFP_HOOK_OUT_IPv6] = fastpath_hook_out_IPv6;
#endif /* INET6 */

	pool_params.pkt.seg_len = SHM_PKT_POOL_BUFFER_SIZE;
	pool_params.pkt.len     = SHM_PKT_POOL_BUFFER_SIZE;
	pool_params.pkt.num     = SHM_PKT_POOL_NB_PKTS;
	pool_params.type        = ODP_POOL_PACKET;

	(void) ofp_init_pre_global(pool_name, &pool_params, pkt_hook, &pool,
				   ARP_AGE_INTERVAL, ARP_ENTRY_TIMEOUT);

	ofp_arp_init_local();

	init_ifnet();

	ofp_arp_ipv4_insert(tun_rem_ip, tun_rem_mac, dev);

	return 0;
}
Example #3
0
static int
init_suite(void)
{
    odp_pool_param_t pool_params;
    ofp_pkt_hook pkt_hook[OFP_HOOK_MAX];
    odp_instance_t instance;

    /* Init ODP before calling anything else */
    if (odp_init_global(&instance, NULL, NULL)) {
        OFP_ERR("Error: ODP global init failed.\n");
        return -1;
    }

    /* Init this thread */
    if (odp_init_local(instance, ODP_THREAD_CONTROL)) {
        OFP_ERR("Error: ODP local init failed.\n");
        return -1;
    }

    memset(pkt_hook, 0, sizeof(pkt_hook));

    pool_params.pkt.seg_len = SHM_PKT_POOL_BUFFER_SIZE;
    pool_params.pkt.len     = SHM_PKT_POOL_BUFFER_SIZE;
    pool_params.pkt.num     = SHM_PKT_POOL_SIZE / SHM_PKT_POOL_BUFFER_SIZE;
    pool_params.type        = ODP_POOL_PACKET;

    (void) ofp_init_pre_global("packet_pool", &pool_params,
                               pkt_hook, &ofp_packet_pool,
                               ARP_AGE_INTERVAL, ARP_ENTRY_TIMEOUT);

    ofp_arp_init_local();

    init_ifnet();

    ofp_arp_ipv4_insert(dst_ipaddr, dst_mac, dev);

    nexthop.gw = dst_ipaddr;
    nexthop.vlan = vlan;
    nexthop.port = port;

    return 0;
}
static int
init_suite(void)
{
    odp_pool_param_t pool_params;
    ofp_pkt_hook pkt_hook[OFP_HOOK_MAX];

    /* Init ODP before calling anything else */
    if (odp_init_global(NULL, NULL)) {
        OFP_ERR("Error: ODP global init failed.\n");
        return -1;
    }

    /* Init this thread */
    if (odp_init_local(ODP_THREAD_CONTROL)) {
        OFP_ERR("Error: ODP local init failed.\n");
        return -1;
    }

    memset(pkt_hook, 0, sizeof(pkt_hook));
    pkt_hook[OFP_HOOK_LOCAL]    = fastpath_local_hook;
    pkt_hook[OFP_HOOK_LOCAL_IPv4]    = fastpath_local_IPv4_hook;
    pkt_hook[OFP_HOOK_LOCAL_UDPv4]    = fastpath_local_UDPv4_hook;
    pkt_hook[OFP_HOOK_FWD_IPv4] = fastpath_ip4_forward_hook;
    pkt_hook[OFP_HOOK_FWD_IPv6] = fastpath_ip6_forward_hook;
    pkt_hook[OFP_HOOK_GRE]	    = fastpath_gre_hook;

    pool_params.pkt.seg_len = SHM_PKT_POOL_BUFFER_SIZE;
    pool_params.pkt.len     = SHM_PKT_POOL_BUFFER_SIZE;
    pool_params.pkt.num     = SHM_PKT_POOL_SIZE / SHM_PKT_POOL_BUFFER_SIZE;
    pool_params.type        = ODP_POOL_PACKET;

    (void) ofp_init_pre_global("packet_pool", &pool_params,
                               pkt_hook, &ofp_packet_pool,
                               ARP_AGE_INTERVAL, ARP_ENTRY_TIMEOUT);

    ofp_arp_init_local();

    ofp_ip_init();

    return 0;
}
Example #5
0
/*
 * INIT
 */
static int
init_suite(void)
{
	odp_pool_param_t pool_params;
	ofp_pkt_hook pkt_hook[OFP_HOOK_MAX];
	struct ofp_ifnet *dev;
	odp_pool_t pool;

	/* Init ODP before calling anything else */
	if (odp_init_global(NULL, NULL)) {
		OFP_ERR("Error: ODP global init failed.\n");
		return -1;
	}

	/* Init this thread */
	if (odp_init_local(ODP_THREAD_CONTROL)) {
		OFP_ERR("Error: ODP local init failed.\n");
		return -1;
	}

	memset(pkt_hook, 0, sizeof(pkt_hook));

	pool_params.pkt.seg_len = SHM_PKT_POOL_BUFFER_SIZE;
	pool_params.pkt.len     = SHM_PKT_POOL_BUFFER_SIZE;
	pool_params.pkt.num     = SHM_PKT_POOL_SIZE / SHM_PKT_POOL_BUFFER_SIZE;
	pool_params.type        = ODP_POOL_PACKET;

	(void) ofp_init_pre_global("packet_pool", &pool_params, pkt_hook, &pool,
				   ARP_AGE_INTERVAL, ARP_ENTRY_TIMEOUT);

	ofp_arp_init_local();

	dev = ofp_get_ifnet(0, 0);
	dev->if_mtu = ifmtu;
	memcpy(dev->mac, ifmac, OFP_ETHER_ADDR_LEN);
	ofp_mac_to_link_local(ifmac, link_local);

	return 0;
}
Example #6
0
int ofp_init_local(void)
{
	/* Lookup shared memories */
	HANDLE_ERROR(ofp_global_config_lookup_shared_memory());
	HANDLE_ERROR(ofp_portconf_lookup_shared_memory());
	HANDLE_ERROR(ofp_route_lookup_shared_memory());
	HANDLE_ERROR(ofp_avl_lookup_shared_memory());
	HANDLE_ERROR(ofp_reassembly_lookup_shared_memory());
	HANDLE_ERROR(ofp_pcap_lookup_shared_memory());
	HANDLE_ERROR(ofp_stat_lookup_shared_memory());
	HANDLE_ERROR(ofp_socket_lookup_shared_memory());
	HANDLE_ERROR(ofp_timer_lookup_shared_memory());
	HANDLE_ERROR(ofp_hook_lookup_shared_memory());
	HANDLE_ERROR(ofp_arp_lookup_shared_memory());
	HANDLE_ERROR(ofp_vxlan_lookup_shared_memory());
	HANDLE_ERROR(ofp_arp_init_local());
	HANDLE_ERROR(ofp_tcp_var_lookup_shared_memory());
#ifdef OFP_SEND_PKT_BURST
	HANDLE_ERROR(ofp_send_pkt_burst_out_init_local());
#endif /*OFP_SEND_PKT_BURST*/

	return 0;
}