mbox series

[v7,0/5] kni: add API to set link status on kernel interface

Message ID 20181024222631.30461-1-dg@adax.com (mailing list archive)
Headers
Series kni: add API to set link status on kernel interface |

Message

Dan Gora Oct. 24, 2018, 10:26 p.m. UTC
Hi All,

Attached is version 7 of a patchset to add a new API function to
set the link status on kernel interfaces created with the KNI kernel
module.

v7
====
* Add commands to check/clear statistics in kni sample app in KNI sample
  app documentation.

> v6
> ====
> * Update info about callback functions in KNI library documentation.
> 
> * Minor fixup to module parameter formatting in KNI kernel module. (align
>   the "charp" text...)
> 
> * Add '-m' flag to KNI sample app command line in KNI sample app
>   documentation.
> 
> * Add references to KNI library documentation from KNI sample app
>   documentation (yay Sphinx!)
> 
> v5
> ====
> * Update Kernel NIC Interface document with new rte_kni option, move
>   kernel module parameter description here from KNI sample app
>   document, general cleanup.
> 
> * Update Kernel NIC Interface sample application (kni) document
>   with new command line parameter, remove documentation for rte_kni
>   kernel module but add reference to it, general cleanup.
> 
> * Change link status change sample rate for KNI example app to 500ms
>   from 100ms.
> 
> * Fix bug in parameter parsing in v4 in rte_kni kernel module.
> 
> * Fix output formatting of optional parameters for rte_kni with
>   modinfo.
> 
> * Fix permissions of optional parameters for rte_kni.
> 
> * Squash patch to add test for rte_kni_update_link into patch
>   introducing the API function.
> 
> v4
> ====
> * Rework rte_kni_update_link to only take linkup/linkdown as parameter,
>   return previous link state, and remove log messages.
> 
> * Update patch to set default carrier state to make default carrier
>   state configurable by passing the 'carrier=[on|off]' option to
>   the rte_kni kernel module.  This is necessary in order to allow
>   applications which use KNI as pure virtual interfaces without
>   corresponding physical ethernet port to use the interfaces without
>   having to set the carrier state to 'on' via rte_kni_update_link()
>   or by writing to /sys/devices/virtual/net/<ifaceX>/carrier.
>   Note that the default is 'off'.
> 
> * Add command line flag '-m' to examples/kni to continuously monitor
>   and update the KNI interface link status according to the link
>   status of the corresponding physical ethernet port.
> 
> 
> v3
> ====
> * Use separate function to test rte_kni_update_link() in 'test' app.
> 
> * Separate changes to 'test' app into separate patch to facilitate
>   possible merge with https://patches.dpdk.org/patch/44730/
> 
> * Remove changes to set KNI interfaces to 'up' in example/kni
> 
> v2
> ====
> 
> * Fix bug where "Fixed" and "AutoNeg" were transposed in the link
>   status log message.
> 
> * Add rte_kni_update_link() to rte_kni_version.map
> 
> * Add rte_kni_update_link() tests to kni_autotest
> 
> * Update examples/kni to continuously monitor link status and
>   update the corresponding kernel interface with
>   rte_kni_update_link().
> 
> * Minor improvements to examples/kni: Add log message showing how
>   to show/zero stats.  Improve zeroing statistics.
> 
> Note that checkpatches.sh compains about patch 1/5, but this appears
> to be a bug with check-symbol-change or something.  If I move the
> fragment of the patch modifying rte_kni_version.map to the bottom of
> the patch file, it doesn't complain any more...  I just don't really
> have time to investigate this right now.
  
thanks
dan

Dan Gora (5):
  kni: add API to set link status on kernel interface
  kni: set default carrier state of interface
  examples/kni: monitor and update link status continually
  examples/kni: add log msgs to show and clear stats
  examples/kni: improve zeroing statistics

 .../prog_guide/kernel_nic_interface.rst       | 239 +++++++++++++---
 .../sample_app_ug/kernel_nic_interface.rst    | 262 +++++++++++-------
 examples/kni/Makefile                         |   2 +
 examples/kni/main.c                           |  92 +++++-
 kernel/linux/kni/kni_dev.h                    |   3 +
 kernel/linux/kni/kni_misc.c                   |  60 +++-
 kernel/linux/kni/kni_net.c                    |   5 +
 lib/librte_kni/rte_kni.c                      |  41 +++
 lib/librte_kni/rte_kni.h                      |  20 ++
 lib/librte_kni/rte_kni_version.map            |   6 +
 test/test/test_kni.c                          |  77 +++++
 11 files changed, 652 insertions(+), 155 deletions(-)
  

Comments

Ferruh Yigit Oct. 25, 2018, 12:30 p.m. UTC | #1
On 10/24/2018 11:26 PM, Dan Gora wrote:
> Hi All,
> 
> Attached is version 7 of a patchset to add a new API function to
> set the link status on kernel interfaces created with the KNI kernel
> module.
> 
> v7
> ====
> * Add commands to check/clear statistics in kni sample app in KNI sample
>   app documentation.
> 
>> v6
>> ====
>> * Update info about callback functions in KNI library documentation.
>>
>> * Minor fixup to module parameter formatting in KNI kernel module. (align
>>   the "charp" text...)
>>
>> * Add '-m' flag to KNI sample app command line in KNI sample app
>>   documentation.
>>
>> * Add references to KNI library documentation from KNI sample app
>>   documentation (yay Sphinx!)
>>
>> v5
>> ====
>> * Update Kernel NIC Interface document with new rte_kni option, move
>>   kernel module parameter description here from KNI sample app
>>   document, general cleanup.
>>
>> * Update Kernel NIC Interface sample application (kni) document
>>   with new command line parameter, remove documentation for rte_kni
>>   kernel module but add reference to it, general cleanup.
>>
>> * Change link status change sample rate for KNI example app to 500ms
>>   from 100ms.
>>
>> * Fix bug in parameter parsing in v4 in rte_kni kernel module.
>>
>> * Fix output formatting of optional parameters for rte_kni with
>>   modinfo.
>>
>> * Fix permissions of optional parameters for rte_kni.
>>
>> * Squash patch to add test for rte_kni_update_link into patch
>>   introducing the API function.
>>
>> v4
>> ====
>> * Rework rte_kni_update_link to only take linkup/linkdown as parameter,
>>   return previous link state, and remove log messages.
>>
>> * Update patch to set default carrier state to make default carrier
>>   state configurable by passing the 'carrier=[on|off]' option to
>>   the rte_kni kernel module.  This is necessary in order to allow
>>   applications which use KNI as pure virtual interfaces without
>>   corresponding physical ethernet port to use the interfaces without
>>   having to set the carrier state to 'on' via rte_kni_update_link()
>>   or by writing to /sys/devices/virtual/net/<ifaceX>/carrier.
>>   Note that the default is 'off'.
>>
>> * Add command line flag '-m' to examples/kni to continuously monitor
>>   and update the KNI interface link status according to the link
>>   status of the corresponding physical ethernet port.
>>
>>
>> v3
>> ====
>> * Use separate function to test rte_kni_update_link() in 'test' app.
>>
>> * Separate changes to 'test' app into separate patch to facilitate
>>   possible merge with https://patches.dpdk.org/patch/44730/
>>
>> * Remove changes to set KNI interfaces to 'up' in example/kni
>>
>> v2
>> ====
>>
>> * Fix bug where "Fixed" and "AutoNeg" were transposed in the link
>>   status log message.
>>
>> * Add rte_kni_update_link() to rte_kni_version.map
>>
>> * Add rte_kni_update_link() tests to kni_autotest
>>
>> * Update examples/kni to continuously monitor link status and
>>   update the corresponding kernel interface with
>>   rte_kni_update_link().
>>
>> * Minor improvements to examples/kni: Add log message showing how
>>   to show/zero stats.  Improve zeroing statistics.
>>
>> Note that checkpatches.sh compains about patch 1/5, but this appears
>> to be a bug with check-symbol-change or something.  If I move the
>> fragment of the patch modifying rte_kni_version.map to the bottom of
>> the patch file, it doesn't complain any more...  I just don't really
>> have time to investigate this right now.
>   
> thanks
> dan
> 
> Dan Gora (5):
>   kni: add API to set link status on kernel interface
>   kni: set default carrier state of interface
>   examples/kni: monitor and update link status continually
>   examples/kni: add log msgs to show and clear stats
>   examples/kni: improve zeroing statistics

For series,
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
  
Thomas Monjalon Oct. 26, 2018, 5:43 p.m. UTC | #2
25/10/2018 14:30, Ferruh Yigit:
> On 10/24/2018 11:26 PM, Dan Gora wrote:
> >> Note that checkpatches.sh compains about patch 1/5, but this appears
> >> to be a bug with check-symbol-change or something.  If I move the
> >> fragment of the patch modifying rte_kni_version.map to the bottom of
> >> the patch file, it doesn't complain any more...  I just don't really
> >> have time to investigate this right now.

Yes we have some false positives with this tool.
Neil, please, would you have time to look at it?

> > Dan Gora (5):
> >   kni: add API to set link status on kernel interface
> >   kni: set default carrier state of interface
> >   examples/kni: monitor and update link status continually
> >   examples/kni: add log msgs to show and clear stats
> >   examples/kni: improve zeroing statistics
> 
> For series,
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied with a fix for meson build