From: Dan Gora <dg@adax.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: dev@dpdk.org, Igor Ryzhov <iryzhov@nfware.com>,
Stephen Hemminger <stephen@networkplumber.org>
Subject: Re: [dpdk-dev] [PATCH v2 1/5] kni: add API to set link status on kernel interface
Date: Wed, 26 Sep 2018 15:56:13 -0300 [thread overview]
Message-ID: <CAGyogRa5rF5B_0=U68Dj1A1cyQevO+Qeww-9zAh86ekce+n64A@mail.gmail.com> (raw)
In-Reply-To: <e8ba3242-2aea-87bf-3dd2-c1522285620e@intel.com>
On Wed, Sep 26, 2018 at 1:42 PM, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>> There is nothing to "reflect" to the kernel interface, nor to apply to
>> the kernel interface. This is exactly how every other kernel driver
>> works on link status changes. There is no "netif_set_speed()'
>> function. When a link status change occurs the kernel driver calls
>> netif_carrier_on/off() and prints a message like this one.
>
> I am not suggesting reflecting these into interface, I am just saying why do you
> print them?
Because the information is useful and because every other Ethernet
driver does the same thing when the link status changes.
See the Linux kernel:
ixgbe_watchdog_link_is_up(): drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
print_link_info(): drivers/net/ethernet/cavium/liquidio/lio_main.c
bnx2_report_link(): drivers/net/ethernet/broadcom/bnx2.c
and dozens of other examples.
Imagine you plug your 1G ethernet cable into a 10/100Mbps hub. Yes
the link will be up, but it's the wrong speed.
Imagine you had accidentally forced your 1G connection to 10Mbps
fixed. It will only come up at 10Mbps. Wouldn't you like to know
that autoNeg was disabled?
> For example, "link->link_speed" this is coming as parameter to API, this API
> does nothing with this value, why print is here?
Because wouldn't you like to know if your link has connected at the
correct speed? I would.
> I assume you are using "rte_eth_link" as parameter, instead of basic
> "link_status" to make it extendible in the feature. If so please print those
> other values when function extended, right now only link_status matters.
No, all that information matters. If you have autoNeg disabled or are
connecting to a broken piece of equipment, the link can come up but be
at the wrong speed.
There is not much to extend this function with. The only action we
can take, other than to print the information, is to write to the /sys
file to have the KNI kernel module call netif_carrier_on/off() for us.
>>>> @@ -148,9 +239,16 @@ test_kni_loop(__rte_unused void *arg)
>>>> ret = -1;
>>>> if (system(IFCONFIG TEST_KNI_PORT" mtu 1400") == -1)
>>>> ret = -1;
>>>> +
>>>> + ret = kni_change_link();
>>>> + if (ret != 0) {
>>>> + test_kni_processing_flag = 1;
>>>> + return ret;
>>>> + }
>>>
>>> I thinks this is wrong place to call kni_change_link(), this is test_kni_loop()
>>> created by test_kni_processing() that does packet processing tests.
>>>
>>
>> Well, no it's not "wrong". The interface has to be up to change the
>> link state, so this is a convenient place to do it.
>
> Are we agree that this function in unit test is to test packet processing part
> of KNI?
> And for example please check following coming patch:
> https://patches.dpdk.org/patch/44730/
>
> I think you want to benefit from "system(IFCONFIG TEST_KNI_PORT" up")" since
> interface needs to be up to set the link, but you can do same call, not have to
> use that one.
ok, I'll fix this. Should I rebase the changes on top of this patch
(https://patches.dpdk.org/patch/44730/)? Is that patch going to get
accepted soon?
>> Because then we'd have to add code to set the interface up and down
>> again, and there really is no point. This is as good a place as any.
>> It does not affect the data transfer tests at all.
>
> Doesn't affect the data transfer, agreed, but why confusing data transfer test
> with link up/down calls? Why not have your function and set interface up and
> down again?
ok. I was just trying to minimize the number of changes. I'll send a new patch.
next prev parent reply other threads:[~2018-09-26 18:56 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-11 23:29 [dpdk-dev] [PATCH 0/2] " Dan Gora
2018-09-11 23:29 ` [dpdk-dev] [PATCH 1/2] " Dan Gora
2018-09-18 16:54 ` Ferruh Yigit
2018-09-18 17:41 ` Dan Gora
2018-09-11 23:29 ` [dpdk-dev] [PATCH 2/2] kni: set default carrier state to 'off' Dan Gora
2018-09-18 16:15 ` Ferruh Yigit
2018-09-18 16:48 ` Ferruh Yigit
2018-09-18 18:34 ` Dan Gora
2018-09-19 19:55 ` [dpdk-dev] [PATCH v2 0/5] kni: add API to set link status on kernel interface Dan Gora
2018-09-19 19:55 ` [dpdk-dev] [PATCH v2 1/5] " Dan Gora
2018-09-26 13:59 ` Ferruh Yigit
2018-09-26 14:55 ` Dan Gora
2018-09-26 16:42 ` Ferruh Yigit
2018-09-26 18:56 ` Dan Gora [this message]
2018-09-27 11:35 ` Ferruh Yigit
2018-09-27 15:40 ` Dan Gora
2018-09-27 21:49 ` Ferruh Yigit
2018-09-27 23:05 ` Dan Gora
2018-09-27 23:44 ` Ferruh Yigit
2018-09-27 23:51 ` Dan Gora
2018-09-28 8:02 ` Igor Ryzhov
2018-09-28 8:03 ` Ferruh Yigit
2018-10-03 19:07 ` Dan Gora
2018-10-10 14:09 ` Ferruh Yigit
2018-10-10 14:57 ` Dan Gora
2018-09-19 19:55 ` [dpdk-dev] [PATCH v2 2/5] kni: set default carrier state to 'off' Dan Gora
2018-09-26 13:59 ` Ferruh Yigit
2018-09-19 19:55 ` [dpdk-dev] [PATCH v2 3/5] examples/kni: monitor and update link status continually Dan Gora
2018-09-26 14:00 ` Ferruh Yigit
2018-09-26 19:16 ` Dan Gora
2018-09-27 11:54 ` Ferruh Yigit
2018-09-19 19:55 ` [dpdk-dev] [PATCH v2 4/5] examples/kni: add log msgs to show and clear stats Dan Gora
2018-09-26 14:00 ` Ferruh Yigit
2018-09-19 19:55 ` [dpdk-dev] [PATCH v2 5/5] examples/kni: improve zeroing statistics Dan Gora
2018-09-26 14:01 ` Ferruh Yigit
2018-09-26 14:48 ` Dan Gora
2018-09-27 11:40 ` Ferruh Yigit
2018-09-27 15:53 ` Dan Gora
2018-09-27 22:04 ` Ferruh Yigit
2018-09-27 22:40 ` Dan Gora
2018-09-27 0:32 ` [dpdk-dev] [PATCH v3 0/6] kni: add API to set link status on kernel interface Dan Gora
2018-09-27 0:32 ` [dpdk-dev] [PATCH v3 1/6] " Dan Gora
2018-09-27 0:32 ` [dpdk-dev] [PATCH v3 2/6] kni: add link status test Dan Gora
2018-09-27 0:32 ` [dpdk-dev] [PATCH v3 3/6] kni: set default carrier state to 'off' Dan Gora
2018-09-27 0:32 ` [dpdk-dev] [PATCH v3 4/6] examples/kni: monitor and update link status continually Dan Gora
2018-09-27 0:32 ` [dpdk-dev] [PATCH v3 5/6] examples/kni: add log msgs to show and clear stats Dan Gora
2018-09-27 0:32 ` [dpdk-dev] [PATCH v3 6/6] examples/kni: improve zeroing statistics Dan Gora
2018-10-10 14:16 ` [dpdk-dev] [PATCH v3 0/6] kni: add API to set link status on kernel interface Ferruh Yigit
2018-10-10 15:01 ` Dan Gora
2018-10-10 23:00 ` Ferruh Yigit
2018-10-10 23:36 ` Dan Gora
2018-10-17 1:04 ` [dpdk-dev] [PATCH v4 " Dan Gora
2018-10-17 15:29 ` Ferruh Yigit
2018-10-17 1:04 ` [dpdk-dev] [PATCH v4 1/6] " Dan Gora
2018-10-18 13:44 ` Ferruh Yigit
2018-10-18 19:00 ` Dan Gora
2018-10-17 1:04 ` [dpdk-dev] [PATCH v4 2/6] kni: add link status test Dan Gora
2018-10-17 1:04 ` [dpdk-dev] [PATCH v4 3/6] kni: set default carrier state of interface Dan Gora
2018-10-17 15:20 ` Ferruh Yigit
2018-10-17 1:04 ` [dpdk-dev] [PATCH v4 4/6] examples/kni: monitor and update link status continually Dan Gora
2018-10-17 1:04 ` [dpdk-dev] [PATCH v4 5/6] examples/kni: add log msgs to show and clear stats Dan Gora
2018-10-17 1:04 ` [dpdk-dev] [PATCH v4 6/6] examples/kni: improve zeroing statistics Dan Gora
2018-10-19 0:23 ` [dpdk-dev] [PATCH v5 0/5] kni: add API to set link status on kernel interface Dan Gora
2018-10-19 0:23 ` [dpdk-dev] [PATCH v5 1/5] " Dan Gora
2018-10-19 0:23 ` [dpdk-dev] [PATCH v5 2/5] kni: set default carrier state of interface Dan Gora
2018-10-19 0:23 ` [dpdk-dev] [PATCH v5 3/5] examples/kni: monitor and update link status continually Dan Gora
2018-10-22 12:51 ` Ferruh Yigit
2018-10-22 20:04 ` Dan Gora
2018-10-19 0:23 ` [dpdk-dev] [PATCH v5 4/5] examples/kni: add log msgs to show and clear stats Dan Gora
2018-10-19 0:23 ` [dpdk-dev] [PATCH v5 5/5] examples/kni: improve zeroing statistics Dan Gora
2018-10-22 13:03 ` [dpdk-dev] [PATCH v5 0/5] kni: add API to set link status on kernel interface Ferruh Yigit
2018-10-22 13:08 ` Thomas Monjalon
2018-10-22 13:14 ` Ferruh Yigit
2018-10-22 13:18 ` Thomas Monjalon
2018-10-24 20:27 ` [dpdk-dev] [PATCH v6 " Dan Gora
2018-10-24 20:27 ` [dpdk-dev] [PATCH v6 1/5] " Dan Gora
2018-10-24 20:27 ` [dpdk-dev] [PATCH v6 2/5] kni: set default carrier state of interface Dan Gora
2018-10-24 20:27 ` [dpdk-dev] [PATCH v6 3/5] examples/kni: monitor and update link status continually Dan Gora
2018-10-24 20:27 ` [dpdk-dev] [PATCH v6 4/5] examples/kni: add log msgs to show and clear stats Dan Gora
2018-10-24 20:46 ` Stephen Hemminger
2018-10-24 20:56 ` Dan Gora
2018-10-24 21:17 ` Stephen Hemminger
2018-10-24 21:45 ` Dan Gora
2018-10-24 20:27 ` [dpdk-dev] [PATCH v6 5/5] examples/kni: improve zeroing statistics Dan Gora
2018-10-24 22:26 ` [dpdk-dev] [PATCH v7 0/5] kni: add API to set link status on kernel interface Dan Gora
2018-10-24 22:26 ` [dpdk-dev] [PATCH v7 1/5] " Dan Gora
2018-10-24 22:26 ` [dpdk-dev] [PATCH v7 2/5] kni: set default carrier state of interface Dan Gora
2018-10-24 22:26 ` [dpdk-dev] [PATCH v7 3/5] examples/kni: monitor and update link status continually Dan Gora
2018-10-24 22:26 ` [dpdk-dev] [PATCH v7 4/5] examples/kni: add log msgs to show and clear stats Dan Gora
2018-10-24 22:26 ` [dpdk-dev] [PATCH v7 5/5] examples/kni: improve zeroing statistics Dan Gora
2018-10-25 12:30 ` [dpdk-dev] [PATCH v7 0/5] kni: add API to set link status on kernel interface Ferruh Yigit
2018-10-26 17:43 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAGyogRa5rF5B_0=U68Dj1A1cyQevO+Qeww-9zAh86ekce+n64A@mail.gmail.com' \
--to=dg@adax.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=iryzhov@nfware.com \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).