My original patch to add this feature was basically the same thing as
this: setting the link status via a KNI ioctl. That method was
rejected after _much_ discussion and we eventually settled on the
currently implementation.

My original patch was here: Message-Id: <20180628225548.21885-1...@adax.com>

If you search for KNI and d...@adax.com in the DPDK devel list you
should be able to suss out the whole discussion that lead to the
current implementation.

thanks
dan

On Mon, Oct 14, 2019 at 1:17 PM Ferruh Yigit <ferruh.yi...@intel.com> wrote:
>
> On 10/14/2019 5:10 PM, Ferruh Yigit wrote:
> > On 9/25/2019 10:36 AM, Igor Ryzhov wrote:
> >> Current implementation doesn't allow us to update KNI carrier if the
> >> interface is not yet UP in kernel. It means that we can't use it in the
> >> same thread which is processing rte_kni_ops.config_network_if, which is
> >> very convenient, because it allows us to have correct carrier status
> >> of the interface right after we enabled it and we don't have to use any
> >> additional thread to track link status.
> >
> > Hi Igor,
> >
> > The existing thread tracks the link status of the physical device and 
> > reflects
> > the changes to the kni netdev, but the "struct rte_kni_ops"
> > (rte_kni_ops.config_network_if) works other way around, it captures (some)
> > requests to kni netdev and reflects them to the underlying physical device.
> > Even 'rte_kni_update_link()' updated to use ioctl, the thread still looks
> > required and this patch doesn't really changes that part.
> >
> > Also I am reluctant to extend the KNI ioctl interface when there is a 
> > generic
> > way to do that work.
> >
> > What is the use case of updating kni netdev carrier status when the 
> > interface is
> > down?
>
> btw, if the problem is status of the interface being 'no-carrier' by default,
> this can be changed by "carrier=on" parameter of the kni kernel module:
> "insmod ./build/kmod/rte_kni.ko carrier=on"
>
> >
> >>
> >> Signed-off-by: Igor Ryzhov <iryz...@nfware.com>
> >
> > <...>
> >
>

Reply via email to