mbox series

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

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

Message

Dan Gora Oct. 19, 2018, 12:23 a.m. UTC
Hi All,

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

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       | 203 ++++++++++----
 .../sample_app_ug/kernel_nic_interface.rst    | 249 +++++++++++-------
 examples/kni/Makefile                         |   2 +
 examples/kni/main.c                           |  92 ++++++-
 kernel/linux/kni/kni_dev.h                    |   3 +
 kernel/linux/kni/kni_misc.c                   |  57 +++-
 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, 598 insertions(+), 157 deletions(-)
  

Comments

Ferruh Yigit Oct. 22, 2018, 1:03 p.m. UTC | #1
On 10/19/2018 1:23 AM, Dan Gora wrote:
> Hi All,
> 
> Attached is version 5 of a patchset to add a new API function to
> set the link status on kernel interfaces created with the KNI kernel
> module.
> 
> 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

Thanks for the document clean up.

For series,
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>


Thomas,

There is a possible doc update, what do you think fixing it while applying? Or
do you require a new version?

Thanks,
ferruh
  
Thomas Monjalon Oct. 22, 2018, 1:08 p.m. UTC | #2
22/10/2018 15:03, Ferruh Yigit:
> On 10/19/2018 1:23 AM, Dan Gora wrote:
> > Hi All,
> > 
> > Attached is version 5 of a patchset to add a new API function to
> > set the link status on kernel interfaces created with the KNI kernel
> > module.
> > 
> > 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
> 
> Thanks for the document clean up.
> 
> For series,
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> 
> Thomas,
> 
> There is a possible doc update, what do you think fixing it while applying? Or
> do you require a new version?

What is the update to do?
  
Ferruh Yigit Oct. 22, 2018, 1:14 p.m. UTC | #3
On 10/22/2018 2:08 PM, Thomas Monjalon wrote:
> 22/10/2018 15:03, Ferruh Yigit:
>> On 10/19/2018 1:23 AM, Dan Gora wrote:
>>> Hi All,
>>>
>>> Attached is version 5 of a patchset to add a new API function to
>>> set the link status on kernel interfaces created with the KNI kernel
>>> module.
>>>
>>> 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
>>
>> Thanks for the document clean up.
>>
>> For series,
>> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>
>>
>> Thomas,
>>
>> There is a possible doc update, what do you think fixing it while applying? Or
>> do you require a new version?
> 
> What is the update to do?

comments on patch 3/5
  
Thomas Monjalon Oct. 22, 2018, 1:18 p.m. UTC | #4
22/10/2018 15:14, Ferruh Yigit:
> On 10/22/2018 2:08 PM, Thomas Monjalon wrote:
> > 22/10/2018 15:03, Ferruh Yigit:
> >> On 10/19/2018 1:23 AM, Dan Gora wrote:
> >>> Hi All,
> >>>
> >>> Attached is version 5 of a patchset to add a new API function to
> >>> set the link status on kernel interfaces created with the KNI kernel
> >>> module.
> >>>
> >>> 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
> >>
> >> Thanks for the document clean up.
> >>
> >> For series,
> >> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >>
> >>
> >> Thomas,
> >>
> >> There is a possible doc update, what do you think fixing it while applying? Or
> >> do you require a new version?
> > 
> > What is the update to do?
> 
> comments on patch 3/5

I prefer a new version please.