Hi Declan,

Thanks for the series! See some comments below

Wednesday, March 28, 2018 4:54 PM, Declan Doherty:
> Subject: [dpdk-dev][PATCH v6 2/8] ethdev: add switch identifier parameter
> to port
> 
> Introduces a new port attribute to ethdev port's which denotes the switch
> domain a port belongs to. By default all port's switch identifiers are the 
> their
> port_id. Ports which share a common switch domain are configured with the
> same switch id.
> 
> Signed-off-by: Declan Doherty <declan.dohe...@intel.com>
> ---
>  app/test-pmd/config.c              | 1 +
>  lib/librte_ether/rte_ethdev.c      | 3 +++
>  lib/librte_ether/rte_ethdev.h      | 1 +
>  lib/librte_ether/rte_ethdev_core.h | 1 +
>  4 files changed, 6 insertions(+)
> 
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index
> 4bb255c62..e12f8c515 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -517,6 +517,7 @@ port_infos_display(portid_t port_id)
>       printf("Min possible number of TXDs per queue: %hu\n",
>               dev_info.tx_desc_lim.nb_min);
>       printf("TXDs number alignment: %hu\n",
> dev_info.tx_desc_lim.nb_align);
> +     printf("Switch Id: %u\n", dev_info.switch_id);
>  }
> 
>  void
> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
> index 23857c91f..f32d18cad 100644
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -290,6 +290,8 @@ rte_eth_dev_allocate(const char *name)
>       eth_dev = eth_dev_get(port_id);
>       snprintf(eth_dev->data->name, sizeof(eth_dev->data->name),
> "%s", name);
>       eth_dev->data->port_id = port_id;
> +     eth_dev->data->switch_id = port_id;
> +     /**< Default switch_id is the port_id of the device */

Why such default is needed? Why not let the PMD to set it always?

>       eth_dev->data->mtu = ETHER_MTU;
> 
>  unlock:
> @@ -2395,6 +2397,7 @@ rte_eth_dev_info_get(uint16_t port_id, struct
> rte_eth_dev_info *dev_info)
>       dev_info->driver_name = dev->device->driver->name;
>       dev_info->nb_rx_queues = dev->data->nb_rx_queues;
>       dev_info->nb_tx_queues = dev->data->nb_tx_queues;
> +     dev_info->switch_id = dev->data->switch_id;

Why there is a need to keep the switch_id on device data? 
I think PMD to store it on its private structure and report it in dev_info is 
enough. 

>  }
> 
>  int
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 036153306..dced4fc41 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -1029,6 +1029,7 @@ struct rte_eth_dev_info {
>       /** Configured number of rx/tx queues */
>       uint16_t nb_rx_queues; /**< Number of RX queues. */
>       uint16_t nb_tx_queues; /**< Number of TX queues. */
> +     uint16_t switch_id; /**< Switch Domain Id */
>  };
> 
>  /**
> diff --git a/lib/librte_ether/rte_ethdev_core.h
> b/lib/librte_ether/rte_ethdev_core.h
> index e5681e466..caed7a4e6 100644
> --- a/lib/librte_ether/rte_ethdev_core.h
> +++ b/lib/librte_ether/rte_ethdev_core.h
> @@ -585,6 +585,7 @@ struct rte_eth_dev_data {
>       struct ether_addr* hash_mac_addrs;
>       /** Device Ethernet MAC addresses of hash filtering. */
>       uint16_t port_id;           /**< Device [external] port identifier. */
> +     uint16_t switch_id;         /**< Switch which port is associated with
> */
>       __extension__
>       uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) / OFF(0).
> */
>               scattered_rx : 1,  /**< RX of scattered packets is ON(1) /
> OFF(0) */
> --
> 2.14.3

Reply via email to