Exemple #1
0
lagopus_result_t
dp_interface_start_internal(struct interface *ifp) {
  switch (ifp->info.type) {
    case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_PHY:
    case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_PCAP:
#ifdef HAVE_DPDK
      return dpdk_start_interface(ifp->info.eth.port_number);
#else
      break;
#endif
    case DATASTORE_INTERFACE_TYPE_ETHERNET_RAWSOCK:
      return rawsock_start_interface(ifp);

    case DATASTORE_INTERFACE_TYPE_UNKNOWN:
      return LAGOPUS_RESULT_OK;

    default:
      break;
  }

  return LAGOPUS_RESULT_INVALID_ARGS;
}
Exemple #2
0
lagopus_result_t
dp_interface_start_internal(struct interface *ifp) {
  lagopus_result_t rv;

  switch (ifp->info.type) {
#ifdef HAVE_DPDK
    case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_PHY:
    case DATASTORE_INTERFACE_TYPE_ETHERNET_DPDK_VDEV:
      rv = dpdk_start_interface(ifp->info.eth.port_number);
      break;
#endif
    case DATASTORE_INTERFACE_TYPE_ETHERNET_RAWSOCK:
      rv = rawsock_start_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:
      rv = LAGOPUS_RESULT_OK;
      break;

    default:
      rv = LAGOPUS_RESULT_INVALID_ARGS;
      break;
  }
#ifdef HYBRID
  if (rv == LAGOPUS_RESULT_OK) {
    rv = dp_tap_start_interface(ifp->name);
  }
#endif /* HYBRID */

  return rv;
}