[dpdk-dev] [PATCH 1/5] bnx2x: SR-IOV VF driver changes to support OOB PF driver

2015-10-20 Thread Thomas Monjalon
2015-09-11 17:42, Rasesh Mody:
> From: Harish Patil 
> 
> Signed-off-by: Harish Patil 

Please explain your change a bit more.



[dpdk-dev] [PATCH 1/5] bnx2x: SR-IOV VF driver changes to support OOB PF driver

2015-10-21 Thread Harish Patil
>
>2015-09-11 17:42, Rasesh Mody:
>> From: Harish Patil 
>>
>> Signed-off-by: Harish Patil 
>
>Please explain your change a bit more.
>
>

SR-IOV is supported using bnx2x poll mode driver running as VF driver and
native linux driver running as PF (in host/hypervisor). There is no issue
while running with the PF driver which is at the base version as that of
PMD. However, there is a compatibility issue between newer out-of-box PF
drivers with older VF driver. So the newer VFs would also need to send
BNX2X_VF_TLV_PHYS_PORT_ID (among other TLVs) to differentiate between
newer and older VFs.

Thanks,
Harish




This message and any attached documents contain information from the sending 
company or its parent company(s), subsidiaries, divisions or branch offices 
that may be confidential. If you are not the intended recipient, you may not 
read, copy, distribute, or use this information. If you have received this 
transmission in error, please notify the sender immediately by reply e-mail and 
then delete this message.


[dpdk-dev] [PATCH 1/5] bnx2x: SR-IOV VF driver changes to support OOB PF driver

2015-10-21 Thread Thomas Monjalon
2015-10-21 15:24, Harish Patil:
> >
> >2015-09-11 17:42, Rasesh Mody:
> >> From: Harish Patil 
> >>
> >> Signed-off-by: Harish Patil 
> >
> >Please explain your change a bit more.
> >
> >
> 
> SR-IOV is supported using bnx2x poll mode driver running as VF driver and
> native linux driver running as PF (in host/hypervisor). There is no issue
> while running with the PF driver which is at the base version as that of
> PMD. However, there is a compatibility issue between newer out-of-box PF
> drivers with older VF driver. So the newer VFs would also need to send
> BNX2X_VF_TLV_PHYS_PORT_ID (among other TLVs) to differentiate between
> newer and older VFs.

So the title should be "update VF to support new PF drivers".
Please put the detailed explanation in the commit message.


[dpdk-dev] [PATCH 1/5] bnx2x: SR-IOV VF driver changes to support OOB PF driver

2015-10-21 Thread Harish Patil
>
>2015-10-21 15:24, Harish Patil:
>> >
>> >2015-09-11 17:42, Rasesh Mody:
>> >> From: Harish Patil 
>> >>
>> >> Signed-off-by: Harish Patil 
>> >
>> >Please explain your change a bit more.
>> >
>> >
>>
>> SR-IOV is supported using bnx2x poll mode driver running as VF driver
>>and
>> native linux driver running as PF (in host/hypervisor). There is no
>>issue
>> while running with the PF driver which is at the base version as that of
>> PMD. However, there is a compatibility issue between newer out-of-box PF
>> drivers with older VF driver. So the newer VFs would also need to send
>> BNX2X_VF_TLV_PHYS_PORT_ID (among other TLVs) to differentiate between
>> newer and older VFs.
>
>So the title should be "update VF to support new PF drivers".
>Please put the detailed explanation in the commit message.
>

Agree, shall do.

Thanks,
Harish




This message and any attached documents contain information from the sending 
company or its parent company(s), subsidiaries, divisions or branch offices 
that may be confidential. If you are not the intended recipient, you may not 
read, copy, distribute, or use this information. If you have received this 
transmission in error, please notify the sender immediately by reply e-mail and 
then delete this message.


[dpdk-dev] [PATCH 1/5] bnx2x: SR-IOV VF driver changes to support OOB PF driver

2015-09-11 Thread Rasesh Mody
From: Harish Patil 

Signed-off-by: Harish Patil 
---
 drivers/net/bnx2x/bnx2x_vfpf.c |   11 +--
 drivers/net/bnx2x/bnx2x_vfpf.h |   15 +++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnx2x/bnx2x_vfpf.c b/drivers/net/bnx2x/bnx2x_vfpf.c
index 661f0a5..39fd59a 100644
--- a/drivers/net/bnx2x/bnx2x_vfpf.c
+++ b/drivers/net/bnx2x/bnx2x_vfpf.c
@@ -257,8 +257,15 @@ int bnx2x_vf_get_resources(struct bnx2x_softc *sc, uint8_t 
tx_count, uint8_t rx_

acq->bulletin_addr = sc->pf2vf_bulletin_mapping.paddr;

-   BNX2X_TLV_APPEND(acq, acq->first_tlv.length, BNX2X_VF_TLV_LIST_END,
-   sizeof(struct channel_list_end_tlv));
+   /* Request physical port identifier */
+   BNX2X_TLV_APPEND(acq, acq->first_tlv.length,
+BNX2X_VF_TLV_PHYS_PORT_ID,
+sizeof(struct channel_tlv));
+
+   BNX2X_TLV_APPEND(acq,
+(acq->first_tlv.length + sizeof(struct channel_tlv)),
+BNX2X_VF_TLV_LIST_END,
+sizeof(struct channel_list_end_tlv));

/* requesting the resources in loop */
obtain_status = bnx2x_loop_obtain_resources(sc);
diff --git a/drivers/net/bnx2x/bnx2x_vfpf.h b/drivers/net/bnx2x/bnx2x_vfpf.h
index 94ce9f0..4f25321 100644
--- a/drivers/net/bnx2x/bnx2x_vfpf.h
+++ b/drivers/net/bnx2x/bnx2x_vfpf.h
@@ -34,12 +34,24 @@ struct vf_resource_query {
 #defineBNX2X_VF_Q_FLAG_DHC 0x0200
 #defineBNX2X_VF_Q_FLAG_LEADING_RSS 0x0400

+#define TLV_BUFFER_SIZE1024
+
+/* general tlv header (used for both vf->pf request and pf->vf response) */
+struct channel_tlv {
+   uint16_t type;
+   uint16_t length;
+};
+
 struct vf_first_tlv {
uint16_t type;
uint16_t length;
uint32_t reply_offset;
 };

+struct tlv_buffer_size {
+   uint8_t tlv_buffer[TLV_BUFFER_SIZE];
+};
+
 /* tlv struct for all PF replies except acquire */
 struct vf_common_reply_tlv {
uint16_t type;
@@ -244,12 +256,14 @@ union query_tlvs {
struct vf_release_tlv   release;
struct vf_rss_tlv   update_rss;
struct channel_list_end_tlv list_end;
+   struct tlv_buffer_size  tlv_buf_size;
 };

 union resp_tlvs {
struct vf_common_reply_tlv  common_reply;
struct vf_acquire_resp_tlv  acquire_resp;
struct channel_list_end_tlv list_end;
+   struct tlv_buffer_size  tlv_buf_size;
 };

 /* struct allocated by VF driver, PF sends updates to VF via bulletin */
@@ -300,6 +314,7 @@ enum channel_tlvs {
BNX2X_VF_TLV_PF_SET_MAC,
BNX2X_VF_TLV_PF_SET_VLAN,
BNX2X_VF_TLV_UPDATE_RSS,
+   BNX2X_VF_TLV_PHYS_PORT_ID,
BNX2X_VF_TLV_MAX
 };

-- 
1.7.10.3