lagopus_result_t dp_interface_unconfigure_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_unconfigure_interface(ifp); #endif break; case DATASTORE_INTERFACE_TYPE_ETHERNET_RAWSOCK: rv = rawsock_unconfigure_interface(ifp); break; case DATASTORE_INTERFACE_TYPE_UNKNOWN: rv = LAGOPUS_RESULT_OK; break; default: break; } return rv; }
lagopus_result_t dp_interface_unconfigure_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_unconfigure_interface(ifp); #else rv = LAGOPUS_RESULT_OK; #endif /* HAVE_DPDK */ break; case DATASTORE_INTERFACE_TYPE_ETHERNET_RAWSOCK: rv = rawsock_unconfigure_interface(ifp); break; case DATASTORE_INTERFACE_TYPE_UNKNOWN: /* nothing to do. */ 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_OK; break; } #ifdef HYBRID if (rv == LAGOPUS_RESULT_OK) { dp_tap_interface_destroy(ifp->name); } #endif /* HYBRID */ return rv; }