dpdk/drivers/net/sfc/sfc_switch.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause
   2 *
   3 * Copyright(c) 2019-2021 Xilinx, Inc.
   4 * Copyright(c) 2019 Solarflare Communications Inc.
   5 *
   6 * This software was jointly developed between OKTET Labs (under contract
   7 * for Solarflare) and Solarflare Communications, Inc.
   8 */
   9
  10#ifndef _SFC_SWITCH_H
  11#define _SFC_SWITCH_H
  12
  13#include <stdint.h>
  14
  15#include "efx.h"
  16
  17#include "sfc.h"
  18
  19#ifdef __cplusplus
  20extern "C" {
  21#endif
  22
  23/** Options for MAE switch port type */
  24enum sfc_mae_switch_port_type {
  25        /**
  26         * The switch port is operated by a self-sufficient RTE ethdev
  27         * and thus refers to its underlying PCIe function
  28         */
  29        SFC_MAE_SWITCH_PORT_INDEPENDENT = 0,
  30};
  31
  32struct sfc_mae_switch_port_request {
  33        enum sfc_mae_switch_port_type           type;
  34        const efx_mport_sel_t                   *entity_mportp;
  35        const efx_mport_sel_t                   *ethdev_mportp;
  36        uint16_t                                ethdev_port_id;
  37};
  38
  39int sfc_mae_assign_switch_domain(struct sfc_adapter *sa,
  40                                 uint16_t *switch_domain_id);
  41
  42int sfc_mae_assign_switch_port(uint16_t switch_domain_id,
  43                               const struct sfc_mae_switch_port_request *req,
  44                               uint16_t *switch_port_id);
  45
  46int sfc_mae_switch_port_by_ethdev(uint16_t switch_domain_id,
  47                                  uint16_t ethdev_port_id,
  48                                  efx_mport_sel_t *mport_sel);
  49
  50#ifdef __cplusplus
  51}
  52#endif
  53#endif /* _SFC_SWITCH_H */
  54