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; }
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; }
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; }
/* * 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; }
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; }