Here's another link to the thread where this was discussed last year.. Igor was actually on this thread as well...
https://mails.dpdk.org/archives/dev/2018-August/110383.html On Mon, Oct 14, 2019 at 4:01 PM Dan Gora <d...@adax.com> wrote: > > 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"