mbox series

[v3,00/19] Add advanced features for Huawei hinic pmd

Message ID cover.1569850826.git.cloud.wangxiaoyun@huawei.com (mailing list archive)
Headers
Series Add advanced features for Huawei hinic pmd |

Message

Wangxiaoyun (Cloud) Sept. 30, 2019, 2 p.m. UTC
  This patch set adds advanced features for Huawei hinic pmd,
such as VLAN filter and VLAN offload, SR-IOV, FW version get,
set link down and up, Flow director for LACP, VRRP, BGP and so on.

--
v2:
  - Fix RSS bugs for vxlan packets inner type
  - Add comments for new added func interface
  - Fix code review comments from patch v1
  - Fix code style problems
  - Remove ceq interfaces and definitions that not used
  - Fix aeq init bugs, firstly alloc aeq resource, then set aeq ctrl len
  - Fix bar map bugs for VF Page size larger than PF
  - Modify link state set, add enable or disable fiber in tx direction 
  - Fix mbox and mgmt channel sync lock mechanism to reduce CPU usage
  - Fix FDIR bugs for VRRP packets
  - Fit ABI changes from dpdk lib

v3:
  - Split hinic.ini and hinic.rst to related feature patches
  - Add min_mtu & max_mtu initialization for hinic_dev_infos_get
  - Fix fdir config patch with net/hinic/base
  - Split link patch into link and fw version getting 2 patches
  - Update pmd doc files to new next version 
  - Add comments for cover letter patch
  - Add rxq & txq info getting interfaces
  - Fix load intrinsics for receiving packets

Xiaoyun wang (19):
  net/hinic/base: add mbox command channel for SRIOV
  net/hinic/base: add HW interfaces for SR-IOV
  net/hinic: add VF PMD operation interfaces
  net/hinic: add VLAN filter and offload
  net/hinic: add allmulticast mode and MTU set
  net/hinic: add unicast and multicast MAC set
  net/hinic/base: add fdir config interface
  net/hinic: add fdir validate flow operations
  net/hinic: create and destroy ntuple filter
  net/hinic: create and destroy fdir filter
  net/hinic: flush fdir filter
  net/hinic: set link down and up
  net/hinic: get firmware version
  net/hinic: support inner L3 checksum offload
  net/hinic: support LRO offload
  net/hinic: add hinic PMD doc files
  net/hinic/base: optimize aeq interfaces
  net/hinic: optimize RX performance
  net/hinic: add support for getting rxq or txq info

 doc/guides/nics/features/hinic.ini         |   12 +-
 doc/guides/nics/hinic.rst                  |   10 +
 doc/guides/rel_notes/release_19_11.rst     |    9 +
 drivers/net/hinic/Makefile                 |    2 +
 drivers/net/hinic/base/hinic_compat.h      |   62 +-
 drivers/net/hinic/base/hinic_csr.h         |   29 +-
 drivers/net/hinic/base/hinic_pmd_api_cmd.c |   60 +-
 drivers/net/hinic/base/hinic_pmd_cfg.c     |   35 +
 drivers/net/hinic/base/hinic_pmd_cmd.h     |   26 +-
 drivers/net/hinic/base/hinic_pmd_eqs.c     |  245 +--
 drivers/net/hinic/base/hinic_pmd_eqs.h     |    5 +-
 drivers/net/hinic/base/hinic_pmd_hwdev.c   |  198 ++-
 drivers/net/hinic/base/hinic_pmd_hwdev.h   |    9 +-
 drivers/net/hinic/base/hinic_pmd_hwif.c    |   85 +-
 drivers/net/hinic/base/hinic_pmd_hwif.h    |   15 +-
 drivers/net/hinic/base/hinic_pmd_mbox.c    |  938 +++++++++++
 drivers/net/hinic/base/hinic_pmd_mbox.h    |   93 ++
 drivers/net/hinic/base/hinic_pmd_mgmt.c    |   83 +-
 drivers/net/hinic/base/hinic_pmd_mgmt.h    |    2 +-
 drivers/net/hinic/base/hinic_pmd_niccfg.c  |  777 ++++++++-
 drivers/net/hinic/base/hinic_pmd_niccfg.h  |  203 +++
 drivers/net/hinic/base/hinic_pmd_nicio.c   |   15 +-
 drivers/net/hinic/base/hinic_pmd_nicio.h   |    3 +-
 drivers/net/hinic/base/meson.build         |    1 +
 drivers/net/hinic/hinic_pmd_ethdev.c       | 1020 ++++++++++--
 drivers/net/hinic/hinic_pmd_ethdev.h       |  139 +-
 drivers/net/hinic/hinic_pmd_flow.c         | 2385 ++++++++++++++++++++++++++++
 drivers/net/hinic/hinic_pmd_rx.c           |   15 +-
 drivers/net/hinic/hinic_pmd_rx.h           |   11 +
 drivers/net/hinic/hinic_pmd_tx.c           |  190 ++-
 drivers/net/hinic/meson.build              |    1 +
 31 files changed, 6050 insertions(+), 628 deletions(-)
 create mode 100644 drivers/net/hinic/base/hinic_pmd_mbox.c
 create mode 100644 drivers/net/hinic/base/hinic_pmd_mbox.h
 create mode 100644 drivers/net/hinic/hinic_pmd_flow.c
  

Comments

Ferruh Yigit Sept. 30, 2019, 3:06 p.m. UTC | #1
On 9/30/2019 3:00 PM, Xiaoyun wang wrote:
> This patch set adds advanced features for Huawei hinic pmd,
> such as VLAN filter and VLAN offload, SR-IOV, FW version get,
> set link down and up, Flow director for LACP, VRRP, BGP and so on.
> 
> --
> v2:
>   - Fix RSS bugs for vxlan packets inner type
>   - Add comments for new added func interface
>   - Fix code review comments from patch v1
>   - Fix code style problems
>   - Remove ceq interfaces and definitions that not used
>   - Fix aeq init bugs, firstly alloc aeq resource, then set aeq ctrl len
>   - Fix bar map bugs for VF Page size larger than PF
>   - Modify link state set, add enable or disable fiber in tx direction 
>   - Fix mbox and mgmt channel sync lock mechanism to reduce CPU usage
>   - Fix FDIR bugs for VRRP packets
>   - Fit ABI changes from dpdk lib
> 
> v3:
>   - Split hinic.ini and hinic.rst to related feature patches
>   - Add min_mtu & max_mtu initialization for hinic_dev_infos_get
>   - Fix fdir config patch with net/hinic/base
>   - Split link patch into link and fw version getting 2 patches
>   - Update pmd doc files to new next version 
>   - Add comments for cover letter patch
>   - Add rxq & txq info getting interfaces
>   - Fix load intrinsics for receiving packets
> 
> Xiaoyun wang (19):
>   net/hinic/base: add mbox command channel for SRIOV
>   net/hinic/base: add HW interfaces for SR-IOV
>   net/hinic: add VF PMD operation interfaces
>   net/hinic: add VLAN filter and offload
>   net/hinic: add allmulticast mode and MTU set
>   net/hinic: add unicast and multicast MAC set
>   net/hinic/base: add fdir config interface
>   net/hinic: add fdir validate flow operations
>   net/hinic: create and destroy ntuple filter
>   net/hinic: create and destroy fdir filter
>   net/hinic: flush fdir filter
>   net/hinic: set link down and up
>   net/hinic: get firmware version
>   net/hinic: support inner L3 checksum offload
>   net/hinic: support LRO offload
>   net/hinic: add hinic PMD doc files
>   net/hinic/base: optimize aeq interfaces
>   net/hinic: optimize RX performance
>   net/hinic: add support for getting rxq or txq info

There is following 32-bit build error because of the log formatting [1], can you
please check it?


[1]
.../drivers/net/hinic/base/hinic_pmd_mbox.c(659):
error #181: argument of type "unsigned long long" is incompatible with format
"%lx", expecting argument of type "unsigned long"
                        PMD_DRV_LOG(ERR, "Fail to send mbox seg, seq_id: 0x%lx,
err: %d",
  
Wangxiaoyun (Cloud) Oct. 8, 2019, 3:14 p.m. UTC | #2
Hi Ferruh,
    Thanks for your comments. hinic pmd driver doesn't support 32-bit build, we add descriptions with config file "defconfig_x86_x32-native-linuxapp-gcc".
and “defconfig_x86_x32-native-linux-gcc”. I don't know why it also build in 32-bit platform, can you tell me where also need me to add configuration.
Also I build it on 64-bit platform,That's OK.

Best regards
Xiaoyun Wang

在 2019/9/30 23:06, Ferruh Yigit 写道:
> On 9/30/2019 3:00 PM, Xiaoyun wang wrote:
>> This patch set adds advanced features for Huawei hinic pmd,
>> such as VLAN filter and VLAN offload, SR-IOV, FW version get,
>> set link down and up, Flow director for LACP, VRRP, BGP and so on.
>>
>> --
>> v2:
>>    - Fix RSS bugs for vxlan packets inner type
>>    - Add comments for new added func interface
>>    - Fix code review comments from patch v1
>>    - Fix code style problems
>>    - Remove ceq interfaces and definitions that not used
>>    - Fix aeq init bugs, firstly alloc aeq resource, then set aeq ctrl len
>>    - Fix bar map bugs for VF Page size larger than PF
>>    - Modify link state set, add enable or disable fiber in tx direction
>>    - Fix mbox and mgmt channel sync lock mechanism to reduce CPU usage
>>    - Fix FDIR bugs for VRRP packets
>>    - Fit ABI changes from dpdk lib
>>
>> v3:
>>    - Split hinic.ini and hinic.rst to related feature patches
>>    - Add min_mtu & max_mtu initialization for hinic_dev_infos_get
>>    - Fix fdir config patch with net/hinic/base
>>    - Split link patch into link and fw version getting 2 patches
>>    - Update pmd doc files to new next version
>>    - Add comments for cover letter patch
>>    - Add rxq & txq info getting interfaces
>>    - Fix load intrinsics for receiving packets
>>
>> Xiaoyun wang (19):
>>    net/hinic/base: add mbox command channel for SRIOV
>>    net/hinic/base: add HW interfaces for SR-IOV
>>    net/hinic: add VF PMD operation interfaces
>>    net/hinic: add VLAN filter and offload
>>    net/hinic: add allmulticast mode and MTU set
>>    net/hinic: add unicast and multicast MAC set
>>    net/hinic/base: add fdir config interface
>>    net/hinic: add fdir validate flow operations
>>    net/hinic: create and destroy ntuple filter
>>    net/hinic: create and destroy fdir filter
>>    net/hinic: flush fdir filter
>>    net/hinic: set link down and up
>>    net/hinic: get firmware version
>>    net/hinic: support inner L3 checksum offload
>>    net/hinic: support LRO offload
>>    net/hinic: add hinic PMD doc files
>>    net/hinic/base: optimize aeq interfaces
>>    net/hinic: optimize RX performance
>>    net/hinic: add support for getting rxq or txq info
> There is following 32-bit build error because of the log formatting [1], can you
> please check it?
>
>
> [1]
> .../drivers/net/hinic/base/hinic_pmd_mbox.c(659):
> error #181: argument of type "unsigned long long" is incompatible with format
> "%lx", expecting argument of type "unsigned long"
>                          PMD_DRV_LOG(ERR, "Fail to send mbox seg, seq_id: 0x%lx,
> err: %d",
>
> .
  
Ferruh Yigit Oct. 8, 2019, 3:33 p.m. UTC | #3
On 10/8/2019 4:14 PM, Wangxiaoyun (Cloud, Network Chip Application Development
Dept) wrote:
> Hi Ferruh,
>     Thanks for your comments. hinic pmd driver doesn't support 32-bit build, we add descriptions with config file "defconfig_x86_x32-native-linuxapp-gcc".
> and “defconfig_x86_x32-native-linux-gcc”. I don't know why it also build in 32-bit platform, can you tell me where also need me to add configuration.
> Also I build it on 64-bit platform,That's OK.

Hi Xiaoyun,

You are right, driver doesn't support 32bit, I am force enabling it, just for build.

Since the build error is only in the logging format identifiers, I think it make
sense to fix it, and it is better to use more proper format identifiers.

> 
> Best regards
> Xiaoyun Wang
> 
> 在 2019/9/30 23:06, Ferruh Yigit 写道:
>> On 9/30/2019 3:00 PM, Xiaoyun wang wrote:
>>> This patch set adds advanced features for Huawei hinic pmd,
>>> such as VLAN filter and VLAN offload, SR-IOV, FW version get,
>>> set link down and up, Flow director for LACP, VRRP, BGP and so on.
>>>
>>> --
>>> v2:
>>>    - Fix RSS bugs for vxlan packets inner type
>>>    - Add comments for new added func interface
>>>    - Fix code review comments from patch v1
>>>    - Fix code style problems
>>>    - Remove ceq interfaces and definitions that not used
>>>    - Fix aeq init bugs, firstly alloc aeq resource, then set aeq ctrl len
>>>    - Fix bar map bugs for VF Page size larger than PF
>>>    - Modify link state set, add enable or disable fiber in tx direction
>>>    - Fix mbox and mgmt channel sync lock mechanism to reduce CPU usage
>>>    - Fix FDIR bugs for VRRP packets
>>>    - Fit ABI changes from dpdk lib
>>>
>>> v3:
>>>    - Split hinic.ini and hinic.rst to related feature patches
>>>    - Add min_mtu & max_mtu initialization for hinic_dev_infos_get
>>>    - Fix fdir config patch with net/hinic/base
>>>    - Split link patch into link and fw version getting 2 patches
>>>    - Update pmd doc files to new next version
>>>    - Add comments for cover letter patch
>>>    - Add rxq & txq info getting interfaces
>>>    - Fix load intrinsics for receiving packets
>>>
>>> Xiaoyun wang (19):
>>>    net/hinic/base: add mbox command channel for SRIOV
>>>    net/hinic/base: add HW interfaces for SR-IOV
>>>    net/hinic: add VF PMD operation interfaces
>>>    net/hinic: add VLAN filter and offload
>>>    net/hinic: add allmulticast mode and MTU set
>>>    net/hinic: add unicast and multicast MAC set
>>>    net/hinic/base: add fdir config interface
>>>    net/hinic: add fdir validate flow operations
>>>    net/hinic: create and destroy ntuple filter
>>>    net/hinic: create and destroy fdir filter
>>>    net/hinic: flush fdir filter
>>>    net/hinic: set link down and up
>>>    net/hinic: get firmware version
>>>    net/hinic: support inner L3 checksum offload
>>>    net/hinic: support LRO offload
>>>    net/hinic: add hinic PMD doc files
>>>    net/hinic/base: optimize aeq interfaces
>>>    net/hinic: optimize RX performance
>>>    net/hinic: add support for getting rxq or txq info
>> There is following 32-bit build error because of the log formatting [1], can you
>> please check it?
>>
>>
>> [1]
>> .../drivers/net/hinic/base/hinic_pmd_mbox.c(659):
>> error #181: argument of type "unsigned long long" is incompatible with format
>> "%lx", expecting argument of type "unsigned long"
>>                          PMD_DRV_LOG(ERR, "Fail to send mbox seg, seq_id: 0x%lx,
>> err: %d",
>>
>> .
  
Wangxiaoyun (Cloud) Oct. 11, 2019, 2:50 a.m. UTC | #4
Hi Ferruh,
     I have deleted the seq_id getting logs, and we can get the infos by other method, which is updated by Patch V4.

Best Regards,
Xiaoyun Wang

在 2019/10/8 23:33, Ferruh Yigit 写道:
> On 10/8/2019 4:14 PM, Wangxiaoyun (Cloud, Network Chip Application Development
> Dept) wrote:
>> Hi Ferruh,
>>      Thanks for your comments. hinic pmd driver doesn't support 32-bit build, we add descriptions with config file "defconfig_x86_x32-native-linuxapp-gcc".
>> and “defconfig_x86_x32-native-linux-gcc”. I don't know why it also build in 32-bit platform, can you tell me where also need me to add configuration.
>> Also I build it on 64-bit platform,That's OK.
> Hi Xiaoyun,
>
> You are right, driver doesn't support 32bit, I am force enabling it, just for build.
>
> Since the build error is only in the logging format identifiers, I think it make
> sense to fix it, and it is better to use more proper format identifiers.
>
>> Best regards
>> Xiaoyun Wang
>>
>> 在 2019/9/30 23:06, Ferruh Yigit 写道:
>>> On 9/30/2019 3:00 PM, Xiaoyun wang wrote:
>>>> This patch set adds advanced features for Huawei hinic pmd,
>>>> such as VLAN filter and VLAN offload, SR-IOV, FW version get,
>>>> set link down and up, Flow director for LACP, VRRP, BGP and so on.
>>>>
>>>> --
>>>> v2:
>>>>     - Fix RSS bugs for vxlan packets inner type
>>>>     - Add comments for new added func interface
>>>>     - Fix code review comments from patch v1
>>>>     - Fix code style problems
>>>>     - Remove ceq interfaces and definitions that not used
>>>>     - Fix aeq init bugs, firstly alloc aeq resource, then set aeq ctrl len
>>>>     - Fix bar map bugs for VF Page size larger than PF
>>>>     - Modify link state set, add enable or disable fiber in tx direction
>>>>     - Fix mbox and mgmt channel sync lock mechanism to reduce CPU usage
>>>>     - Fix FDIR bugs for VRRP packets
>>>>     - Fit ABI changes from dpdk lib
>>>>
>>>> v3:
>>>>     - Split hinic.ini and hinic.rst to related feature patches
>>>>     - Add min_mtu & max_mtu initialization for hinic_dev_infos_get
>>>>     - Fix fdir config patch with net/hinic/base
>>>>     - Split link patch into link and fw version getting 2 patches
>>>>     - Update pmd doc files to new next version
>>>>     - Add comments for cover letter patch
>>>>     - Add rxq & txq info getting interfaces
>>>>     - Fix load intrinsics for receiving packets
>>>>
>>>> Xiaoyun wang (19):
>>>>     net/hinic/base: add mbox command channel for SRIOV
>>>>     net/hinic/base: add HW interfaces for SR-IOV
>>>>     net/hinic: add VF PMD operation interfaces
>>>>     net/hinic: add VLAN filter and offload
>>>>     net/hinic: add allmulticast mode and MTU set
>>>>     net/hinic: add unicast and multicast MAC set
>>>>     net/hinic/base: add fdir config interface
>>>>     net/hinic: add fdir validate flow operations
>>>>     net/hinic: create and destroy ntuple filter
>>>>     net/hinic: create and destroy fdir filter
>>>>     net/hinic: flush fdir filter
>>>>     net/hinic: set link down and up
>>>>     net/hinic: get firmware version
>>>>     net/hinic: support inner L3 checksum offload
>>>>     net/hinic: support LRO offload
>>>>     net/hinic: add hinic PMD doc files
>>>>     net/hinic/base: optimize aeq interfaces
>>>>     net/hinic: optimize RX performance
>>>>     net/hinic: add support for getting rxq or txq info
>>> There is following 32-bit build error because of the log formatting [1], can you
>>> please check it?
>>>
>>>
>>> [1]
>>> .../drivers/net/hinic/base/hinic_pmd_mbox.c(659):
>>> error #181: argument of type "unsigned long long" is incompatible with format
>>> "%lx", expecting argument of type "unsigned long"
>>>                           PMD_DRV_LOG(ERR, "Fail to send mbox seg, seq_id: 0x%lx,
>>> err: %d",
>>>
>>> .
>
> .