[dpdk-dev] [PATCH 1/5] bnx2x: SR-IOV VF driver changes to support OOB PF driver
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-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 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 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
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