lagopus_result_t dp_interface_configure_internal(struct interface *ifp) { lagopus_result_t rv; rv = LAGOPUS_RESULT_INVALID_ARGS; switch (ifp->info.type) { case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_PHY: case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_PCAP: #ifdef HAVE_DPDK rv = dpdk_configure_interface(ifp); #endif break; case DATASTORE_INTERFACE_TYPE_ETHERNET_RAWSOCK: rv = rawsock_configure_interface(ifp); break; case DATASTORE_INTERFACE_TYPE_UNKNOWN: ifp->stats = unknown_port_stats; rv = LAGOPUS_RESULT_OK; break; case DATASTORE_INTERFACE_TYPE_VXLAN: /* TODO */ rv = LAGOPUS_RESULT_OK; break; default: break; } return rv; }
lagopus_result_t dp_interface_configure_internal(struct interface *ifp) { lagopus_result_t rv; switch (ifp->info.type) { case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_PHY: case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_VDEV: #ifdef HAVE_DPDK rv = dpdk_configure_interface(ifp); #else rv = LAGOPUS_RESULT_INVALID_ARGS; #endif /* HAVE_DPDK */ break; case DATASTORE_INTERFACE_TYPE_ETHERNET_RAWSOCK: rv = rawsock_configure_interface(ifp); break; case DATASTORE_INTERFACE_TYPE_UNKNOWN: rv = LAGOPUS_RESULT_OK; break; case DATASTORE_INTERFACE_TYPE_GRE: case DATASTORE_INTERFACE_TYPE_NVGRE: case DATASTORE_INTERFACE_TYPE_VXLAN: case DATASTORE_INTERFACE_TYPE_VHOST_USER: /* TODO */ rv = LAGOPUS_RESULT_OK; break; default: rv = LAGOPUS_RESULT_INVALID_ARGS; break; } if (rv == LAGOPUS_RESULT_OK) { dp_interface_hw_addr_get_internal(ifp, ifp->hw_addr); #ifdef HYBRID rv = dp_tap_interface_create(ifp->name, ifp); #endif /* HYBRID */ } else { ifp->info.type = DATASTORE_INTERFACE_TYPE_UNKNOWN; } return rv; }