From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 7D5F8532C for ; Tue, 18 Sep 2018 18:48:19 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2018 09:48:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,390,1531810800"; d="scan'208";a="258302930" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.237.221.39]) ([10.237.221.39]) by orsmga005.jf.intel.com with ESMTP; 18 Sep 2018 09:48:17 -0700 From: Ferruh Yigit To: Dan Gora , dev@dpdk.org Cc: Igor Ryzhov , Stephen Hemminger References: <20180911232906.18352-1-dg@adax.com> <20180911232906.18352-3-dg@adax.com> <30ebb4b6-cf0e-37d8-00d4-167b46667378@intel.com> Openpgp: preference=signencrypt Message-ID: Date: Tue, 18 Sep 2018 17:48:14 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <30ebb4b6-cf0e-37d8-00d4-167b46667378@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH 2/2] kni: set default carrier state to 'off' X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Sep 2018 16:48:20 -0000 On 9/18/2018 5:15 PM, Ferruh Yigit wrote: > On 9/12/2018 12:29 AM, Dan Gora wrote: >> Set the carrier state to 'off' when the interface is instantiated >> or when it is marked 'up' or 'down'. This is necessary to set the >> interface to a known operational state until the carrier state is >> changed with rte_kni_update_link(). > > Why setting to no-carrier mode by default? This will change the behavior of > interfaces and may effect others. And indeed I didn't get why this is required? I just read the other thread, including Igor's and your comment about starting the interface down, overall I got your point but my concerns is if someone has a solution based on assumption that interface will be up when created will be affected. > >> >> Signed-off-by: Dan Gora >> --- >> kernel/linux/kni/kni_misc.c | 2 ++ >> kernel/linux/kni/kni_net.c | 2 ++ >> 2 files changed, 4 insertions(+) >> >> diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c >> index fa69f8e63..45649499d 100644 >> --- a/kernel/linux/kni/kni_misc.c >> +++ b/kernel/linux/kni/kni_misc.c >> @@ -466,6 +466,8 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num, >> return -ENODEV; >> } >> >> + netif_carrier_off(net_dev); >> + >> ret = kni_run_thread(knet, kni, dev_info.force_bind); >> if (ret != 0) >> return ret; >> diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c >> index 7fcfa106c..1f8ba0700 100644 >> --- a/kernel/linux/kni/kni_net.c >> +++ b/kernel/linux/kni/kni_net.c >> @@ -133,6 +133,7 @@ kni_net_open(struct net_device *dev) >> struct kni_dev *kni = netdev_priv(dev); >> >> netif_start_queue(dev); >> + netif_carrier_off(dev); >> >> memset(&req, 0, sizeof(req)); >> req.req_id = RTE_KNI_REQ_CFG_NETWORK_IF; >> @@ -152,6 +153,7 @@ kni_net_release(struct net_device *dev) >> struct kni_dev *kni = netdev_priv(dev); >> >> netif_stop_queue(dev); /* can't transmit any more */ >> + netif_carrier_off(dev); >> >> memset(&req, 0, sizeof(req)); >> req.req_id = RTE_KNI_REQ_CFG_NETWORK_IF; >> >