[dpdk-dev] [RFC PATCH 1/2] Added ETH_SPEED_CAP bitmap in rte_eth_dev_info

2015-05-26 Thread Marc Sune


On 26/05/15 17:03, Stephen Hemminger wrote:
> On Tue, 12 May 2015 01:45:45 +0200
> Marc Sune  wrote:
>
>> +/**
>> + * Ethernet device information
>> + */
>>   struct rte_eth_dev_info {
>>  struct rte_pci_device *pci_dev; /**< Device PCI information. */
>>  const char *driver_name; /**< Device Driver name. */
>> @@ -924,6 +947,7 @@ struct rte_eth_dev_info {
>>  uint16_t vmdq_queue_base; /**< First queue ID for VMDQ pools. */
>>  uint16_t vmdq_queue_num;  /**< Queue number for VMDQ pools. */
>>  uint16_t vmdq_pool_base;  /**< First ID of VMDQ pools. */
>> +uint16_t speed_capa;  /**< Supported speeds bitmap. */
>>   };
>>   
> Since you are changing size of key structure, this is an ABI change.

Yes. This means target would be 2.2?

I will send the new version anyway to further discuss, and will rebase 
again once necessary.

Marc


[dpdk-dev] [RFC PATCH 1/2] Added ETH_SPEED_CAP bitmap in rte_eth_dev_info

2015-05-26 Thread Stephen Hemminger
On Tue, 12 May 2015 01:45:45 +0200
Marc Sune  wrote:

> +/**
> + * Ethernet device information
> + */
>  struct rte_eth_dev_info {
>   struct rte_pci_device *pci_dev; /**< Device PCI information. */
>   const char *driver_name; /**< Device Driver name. */
> @@ -924,6 +947,7 @@ struct rte_eth_dev_info {
>   uint16_t vmdq_queue_base; /**< First queue ID for VMDQ pools. */
>   uint16_t vmdq_queue_num;  /**< Queue number for VMDQ pools. */
>   uint16_t vmdq_pool_base;  /**< First ID of VMDQ pools. */
> + uint16_t speed_capa;  /**< Supported speeds bitmap. */
>  };
>  

Since you are changing size of key structure, this is an ABI change.


[dpdk-dev] [RFC PATCH 1/2] Added ETH_SPEED_CAP bitmap in rte_eth_dev_info

2015-05-25 Thread Stephen Hemminger
On Tue, 12 May 2015 01:45:45 +0200
Marc Sune  wrote:

> +/**
> + * Ethernet device information
> + */
>  struct rte_eth_dev_info {
>   struct rte_pci_device *pci_dev; /**< Device PCI information. */
>   const char *driver_name; /**< Device Driver name. */
> @@ -924,6 +947,7 @@ struct rte_eth_dev_info {
>   uint16_t vmdq_queue_base; /**< First queue ID for VMDQ pools. */
>   uint16_t vmdq_queue_num;  /**< Queue number for VMDQ pools. */
>   uint16_t vmdq_pool_base;  /**< First ID of VMDQ pools. */
> + uint16_t speed_capa;  /**< Supported speeds bitmap. */

Since you are likely to run out of 16 bits in future, why not 32 bits now?


[dpdk-dev] [RFC PATCH 1/2] Added ETH_SPEED_CAP bitmap in rte_eth_dev_info

2015-05-12 Thread Marc Sune
Added constants and bitmap to struct rte_eth_dev_info to be used by PMDs.

Signed-off-by: Marc Sune 
---
 lib/librte_ether/rte_ethdev.h | 24 
 1 file changed, 24 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 4648290..05f6e88 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -899,6 +899,29 @@ struct rte_eth_conf {
 #define DEV_TX_OFFLOAD_UDP_TSO 0x0040
 #define DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM 0x0080 /**< Used for tunneling 
packet. */

+/**
+ * Device supported speeds
+ */
+#define ETH_SPEED_CAP_NOT_PHY  (0)  /*< No phy media > */
+#define ETH_SPEED_CAP_10M_HD   (1 << 0)  /*< 10 Mbps half-duplex> */
+#define ETH_SPEED_CAP_10M_FD   (1 << 1)  /*< 10 Mbps full-duplex> */
+#define ETH_SPEED_CAP_100M_HD  (1 << 2)  /*< 100 Mbps half-duplex> */
+#define ETH_SPEED_CAP_100M_FD  (1 << 3)  /*< 100 Mbps full-duplex> */
+#define ETH_SPEED_CAP_1G   (1 << 4)  /*< 1 Gbps > */
+#define ETH_SPEED_CAP_2_5G (1 << 5)  /*< 2.5 Gbps > */
+#define ETH_SPEED_CAP_5G   (1 << 6)  /*< 5 Gbps > */
+#define ETH_SPEED_CAP_10G  (1 << 7)  /*< 10 Mbps > */
+#define ETH_SPEED_CAP_20G  (1 << 8)  /*< 20 Gbps > */
+#define ETH_SPEED_CAP_25G  (1 << 9)  /*< 25 Gbps > */
+#define ETH_SPEED_CAP_40G  (1 << 10)  /*< 40 Gbps > */
+#define ETH_SPEED_CAP_50G  (1 << 11)  /*< 50 Gbps > */
+#define ETH_SPEED_CAP_56G  (1 << 12)  /*< 56 Gbps > */
+#define ETH_SPEED_CAP_100G (1 << 13)  /*< 100 Gbps > */
+
+
+/**
+ * Ethernet device information
+ */
 struct rte_eth_dev_info {
struct rte_pci_device *pci_dev; /**< Device PCI information. */
const char *driver_name; /**< Device Driver name. */
@@ -924,6 +947,7 @@ struct rte_eth_dev_info {
uint16_t vmdq_queue_base; /**< First queue ID for VMDQ pools. */
uint16_t vmdq_queue_num;  /**< Queue number for VMDQ pools. */
uint16_t vmdq_pool_base;  /**< First ID of VMDQ pools. */
+   uint16_t speed_capa;  /**< Supported speeds bitmap. */
 };

 /** Maximum name length for extended statistics counters */
-- 
2.1.4