[{"id":1771237,"web_url":"http://patchwork.ozlabs.org/comment/1771237/","msgid":"<20170919174511.GJ5788@mtr-leonro.local>","list_archive_url":null,"date":"2017-09-19T17:45:11","subject":"Re: [PATCH net-next 2/4] qed: Add iWARP out of order support","submitter":{"id":68852,"url":"http://patchwork.ozlabs.org/api/people/68852/","name":"Leon Romanovsky","email":"leon@kernel.org"},"content":"On Tue, Sep 19, 2017 at 08:26:17PM +0300, Michal Kalderon wrote:\n> iWARP requires OOO support which is already provided by the ll2\n> interface (until now was used only for iSCSI offload).\n> The changes mostly include opening a ll2 dedicated connection for\n> OOO and notifiying the FW about the handle id.\n>\n> Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>\n> Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>\n> ---\n>  drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 44 +++++++++++++++++++++++++++++\n>  drivers/net/ethernet/qlogic/qed/qed_iwarp.h | 11 +++++++-\n>  drivers/net/ethernet/qlogic/qed/qed_rdma.c  |  7 +++--\n>  3 files changed, 59 insertions(+), 3 deletions(-)\n>\n> diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n> index 9d989c9..568e985 100644\n> --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n> +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n> @@ -41,6 +41,7 @@\n>  #include \"qed_rdma.h\"\n>  #include \"qed_reg_addr.h\"\n>  #include \"qed_sp.h\"\n> +#include \"qed_ooo.h\"\n>\n>  #define QED_IWARP_ORD_DEFAULT\t\t32\n>  #define QED_IWARP_IRD_DEFAULT\t\t32\n> @@ -119,6 +120,13 @@ static void qed_iwarp_cid_cleaned(struct qed_hwfn *p_hwfn, u32 cid)\n>  \tspin_unlock_bh(&p_hwfn->p_rdma_info->lock);\n>  }\n>\n> +void qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn,\n> +\t\t\t      struct iwarp_init_func_params *p_ramrod)\n> +{\n> +\tp_ramrod->ll2_ooo_q_index = RESC_START(p_hwfn, QED_LL2_QUEUE) +\n> +\t\t\t\t    p_hwfn->p_rdma_info->iwarp.ll2_ooo_handle;\n> +}\n> +\n>  static int qed_iwarp_alloc_cid(struct qed_hwfn *p_hwfn, u32 *cid)\n>  {\n>  \tint rc;\n> @@ -1876,6 +1884,16 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)\n>  \t\tiwarp_info->ll2_syn_handle = QED_IWARP_HANDLE_INVAL;\n>  \t}\n>\n> +\tif (iwarp_info->ll2_ooo_handle != QED_IWARP_HANDLE_INVAL) {\n> +\t\trc = qed_ll2_terminate_connection(p_hwfn,\n> +\t\t\t\t\t\t  iwarp_info->ll2_ooo_handle);\n> +\t\tif (rc)\n> +\t\t\tDP_INFO(p_hwfn, \"Failed to terminate ooo connection\\n\");\n\nWhat exactly will you do with this knowledge? Anyway you are not\ninterested in return values of qed_ll2_terminate_connection function in\nthis place and other places too.\n\nWhy don't you handle EAGAIN returned from the qed_ll2_terminate_connection()?\n\nThanks\n\n> +\n> +\t\tqed_ll2_release_connection(p_hwfn, iwarp_info->ll2_ooo_handle);\n> +\t\tiwarp_info->ll2_ooo_handle = QED_IWARP_HANDLE_INVAL;\n> +\t}\n> +\n>  \tqed_llh_remove_mac_filter(p_hwfn,\n>  \t\t\t\t  p_ptt, p_hwfn->p_rdma_info->iwarp.mac_addr);\n>  \treturn rc;\n> @@ -1927,10 +1945,12 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)\n>  \tstruct qed_iwarp_info *iwarp_info;\n>  \tstruct qed_ll2_acquire_data data;\n>  \tstruct qed_ll2_cbs cbs;\n> +\tu16 n_ooo_bufs;\n>  \tint rc = 0;\n>\n>  \tiwarp_info = &p_hwfn->p_rdma_info->iwarp;\n>  \tiwarp_info->ll2_syn_handle = QED_IWARP_HANDLE_INVAL;\n> +\tiwarp_info->ll2_ooo_handle = QED_IWARP_HANDLE_INVAL;\n>\n>  \tiwarp_info->max_mtu = params->max_mtu;\n>\n> @@ -1978,6 +1998,29 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)\n>  \tif (rc)\n>  \t\tgoto err;\n>\n> +\t/* Start OOO connection */\n> +\tdata.input.conn_type = QED_LL2_TYPE_OOO;\n> +\tdata.input.mtu = params->max_mtu;\n> +\n> +\tn_ooo_bufs = (QED_IWARP_MAX_OOO * QED_IWARP_RCV_WND_SIZE_DEF) /\n> +\t\t     iwarp_info->max_mtu;\n> +\tn_ooo_bufs = min_t(u32, n_ooo_bufs, QED_IWARP_LL2_OOO_MAX_RX_SIZE);\n> +\n> +\tdata.input.rx_num_desc = n_ooo_bufs;\n> +\tdata.input.rx_num_ooo_buffers = n_ooo_bufs;\n> +\n> +\tdata.input.tx_max_bds_per_packet = 1;\t/* will never be fragmented */\n> +\tdata.input.tx_num_desc = QED_IWARP_LL2_OOO_DEF_TX_SIZE;\n> +\tdata.p_connection_handle = &iwarp_info->ll2_ooo_handle;\n> +\n> +\trc = qed_ll2_acquire_connection(p_hwfn, &data);\n> +\tif (rc)\n> +\t\tgoto err;\n> +\n> +\trc = qed_ll2_establish_connection(p_hwfn, iwarp_info->ll2_ooo_handle);\n> +\tif (rc)\n> +\t\tgoto err;\n> +\n>  \treturn rc;\n>  err:\n>  \tqed_iwarp_ll2_stop(p_hwfn, p_ptt);\n> @@ -2014,6 +2057,7 @@ int qed_iwarp_setup(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,\n>\n>  \tqed_spq_register_async_cb(p_hwfn, PROTOCOLID_IWARP,\n>  \t\t\t\t  qed_iwarp_async_event);\n> +\tqed_ooo_setup(p_hwfn);\n>\n>  \treturn qed_iwarp_ll2_start(p_hwfn, params, p_ptt);\n>  }\n> diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.h b/drivers/net/ethernet/qlogic/qed/qed_iwarp.h\n> index 148ef3c..9e2bfde 100644\n> --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.h\n> +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.h\n> @@ -47,7 +47,12 @@ enum qed_iwarp_qp_state {\n>  #define QED_IWARP_LL2_SYN_TX_SIZE       (128)\n>  #define QED_IWARP_LL2_SYN_RX_SIZE       (256)\n>  #define QED_IWARP_MAX_SYN_PKT_SIZE      (128)\n> -#define QED_IWARP_HANDLE_INVAL\t\t\t(0xff)\n> +\n> +#define QED_IWARP_LL2_OOO_DEF_TX_SIZE   (256)\n> +#define QED_IWARP_MAX_OOO\t\t(16)\n> +#define QED_IWARP_LL2_OOO_MAX_RX_SIZE   (16384)\n> +\n> +#define QED_IWARP_HANDLE_INVAL\t\t(0xff)\n>\n>  struct qed_iwarp_ll2_buff {\n>  \tvoid *data;\n> @@ -67,6 +72,7 @@ struct qed_iwarp_info {\n>  \tu8 crc_needed;\n>  \tu8 tcp_flags;\n>  \tu8 ll2_syn_handle;\n> +\tu8 ll2_ooo_handle;\n>  \tu8 peer2peer;\n>  \tenum mpa_negotiation_mode mpa_rev;\n>  \tenum mpa_rtr_type rtr_type;\n> @@ -147,6 +153,9 @@ struct qed_iwarp_listener {\n>  int qed_iwarp_setup(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,\n>  \t\t    struct qed_rdma_start_in_params *params);\n>\n> +void qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn,\n> +\t\t\t      struct iwarp_init_func_params *p_ramrod);\n> +\n>  int qed_iwarp_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);\n>\n>  void qed_iwarp_resc_free(struct qed_hwfn *p_hwfn);\n> diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c\n> index 06715f7..4f46f28 100644\n> --- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c\n> +++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c\n> @@ -551,10 +551,13 @@ static int qed_rdma_start_fw(struct qed_hwfn *p_hwfn,\n>  \tif (rc)\n>  \t\treturn rc;\n>\n> -\tif (QED_IS_IWARP_PERSONALITY(p_hwfn))\n> +\tif (QED_IS_IWARP_PERSONALITY(p_hwfn)) {\n> +\t\tqed_iwarp_init_fw_ramrod(p_hwfn,\n> +\t\t\t\t\t &p_ent->ramrod.iwarp_init_func.iwarp);\n>  \t\tp_ramrod = &p_ent->ramrod.iwarp_init_func.rdma;\n> -\telse\n> +\t} else {\n>  \t\tp_ramrod = &p_ent->ramrod.roce_init_func.rdma;\n> +\t}\n>\n>  \tp_params_header = &p_ramrod->params_header;\n>  \tp_params_header->cnq_start_offset = (u8)RESC_START(p_hwfn,\n> --\n> 1.8.3.1\n>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","mail.kernel.org;\n\tdmarc=none (p=none dis=none) header.from=kernel.org","mail.kernel.org;\n\tspf=none smtp.mailfrom=leon@kernel.org"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xxVdZ07S2z9sMN\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 20 Sep 2017 03:45:22 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751561AbdISRpT (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 19 Sep 2017 13:45:19 -0400","from mail.kernel.org ([198.145.29.99]:33448 \"EHLO mail.kernel.org\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751512AbdISRpS (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tTue, 19 Sep 2017 13:45:18 -0400","from localhost (unknown [213.57.247.46])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby mail.kernel.org (Postfix) with ESMTPSA id CD823218E9;\n\tTue, 19 Sep 2017 17:45:16 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mail.kernel.org CD823218E9","Date":"Tue, 19 Sep 2017 20:45:11 +0300","From":"Leon Romanovsky <leon@kernel.org>","To":"Michal Kalderon <Michal.Kalderon@cavium.com>","Cc":"davem@davemloft.net, netdev@vger.kernel.org,\n\tlinux-rdma@vger.kernel.org, dledford@redhat.com,\n\tAriel Elior <Ariel.Elior@cavium.com>","Subject":"Re: [PATCH net-next 2/4] qed: Add iWARP out of order support","Message-ID":"<20170919174511.GJ5788@mtr-leonro.local>","References":"<1505841979-26365-1-git-send-email-Michal.Kalderon@cavium.com>\n\t<1505841979-26365-3-git-send-email-Michal.Kalderon@cavium.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"FK65GREB+Evh/hTL\"","Content-Disposition":"inline","In-Reply-To":"<1505841979-26365-3-git-send-email-Michal.Kalderon@cavium.com>","User-Agent":"Mutt/1.9.0 (2017-09-02)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1771595,"web_url":"http://patchwork.ozlabs.org/comment/1771595/","msgid":"<CY1PR0701MB2012F515805B94D83D4CB2A788610@CY1PR0701MB2012.namprd07.prod.outlook.com>","list_archive_url":null,"date":"2017-09-20T06:03:32","subject":"Re: [PATCH net-next 2/4] qed: Add iWARP out of order support","submitter":{"id":69904,"url":"http://patchwork.ozlabs.org/api/people/69904/","name":"Michal Kalderon","email":"Michal.Kalderon@cavium.com"},"content":"From: Leon Romanovsky <leon@kernel.org>\nSent: Tuesday, September 19, 2017 8:45 PM\nOn Tue, Sep 19, 2017 at 08:26:17PM +0300, Michal Kalderon wrote:\n>> iWARP requires OOO support which is already provided by the ll2\n>> interface (until now was used only for iSCSI offload).\n>> The changes mostly include opening a ll2 dedicated connection for\n>> OOO and notifiying the FW about the handle id.\n>>\n>> Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>\n>> Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>\n>> ---\n>>  drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 44 +++++++++++++++++++++++++++++\n>>  drivers/net/ethernet/qlogic/qed/qed_iwarp.h | 11 +++++++-\n>>  drivers/net/ethernet/qlogic/qed/qed_rdma.c  |  7 +++--\n>>  3 files changed, 59 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n>> index 9d989c9..568e985 100644\n>> --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n>> +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n>> @@ -41,6 +41,7 @@\n>>  #include \"qed_rdma.h\"\n>>  #include \"qed_reg_addr.h\"\n>>  #include \"qed_sp.h\"\n>> +#include \"qed_ooo.h\"\n>>\n>>  #define QED_IWARP_ORD_DEFAULT                32\n>>  #define QED_IWARP_IRD_DEFAULT                32\n>> @@ -119,6 +120,13 @@ static void qed_iwarp_cid_cleaned(struct qed_hwfn *p_hwfn, u32 cid)\n>>       spin_unlock_bh(&p_hwfn->p_rdma_info->lock);\n>>  }\n>>\n>> +void qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn,\n>> +                           struct iwarp_init_func_params *p_ramrod)\n>> +{\n>> +     p_ramrod->ll2_ooo_q_index = RESC_START(p_hwfn, QED_LL2_QUEUE) +\n>> +                                 p_hwfn->p_rdma_info->iwarp.ll2_ooo_handle;\n>> +}\n>> +\n>>  static int qed_iwarp_alloc_cid(struct qed_hwfn *p_hwfn, u32 *cid)\n>>  {\n>>       int rc;\n>> @@ -1876,6 +1884,16 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)\n>>               iwarp_info->ll2_syn_handle = QED_IWARP_HANDLE_INVAL;\n>>       }\n>>\n>> +     if (iwarp_info->ll2_ooo_handle != QED_IWARP_HANDLE_INVAL) {\n>> +             rc = qed_ll2_terminate_connection(p_hwfn,\n>> +                                               iwarp_info->ll2_ooo_handle);\n>> +             if (rc)\n>> +                     DP_INFO(p_hwfn, \"Failed to terminate ooo connection\\n\");\n>\n>What exactly will you do with this knowledge? Anyway you are not\n>interested in return values of qed_ll2_terminate_connection function in\n>this place and other places too.\n>\n>Why don't you handle EAGAIN returned from the qed_ll2_terminate_connection()?\n>\n>Thanks\nThanks for pointing this out, you're right we could have ignored the return code, as there's\nnot much we can do at this point if it failed. But I still feel failures are worth knowing about,\nand could help in analysis if they unexpectedly lead to another issue.\nAs for EAGAIN, it is very unlikely that we'll get this return code. Will consider adding generic\nhandling for this as a separate patch, as this currently isn't handled in any of the ll2 flows.\nthanks,","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com\n\theader.i=@CAVIUMNETWORKS.onmicrosoft.com header.b=\"jTgoIkln\"; \n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=Michal.Kalderon@cavium.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xxq1R3sJDz9s78\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 20 Sep 2017 16:03:39 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751671AbdITGDh (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 20 Sep 2017 02:03:37 -0400","from mail-cys01nam02on0087.outbound.protection.outlook.com\n\t([104.47.37.87]:54582\n\t\"EHLO NAM02-CY1-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1751488AbdITGDf (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tWed, 20 Sep 2017 02:03:35 -0400","from CY1PR0701MB2012.namprd07.prod.outlook.com (10.163.142.11) by\n\tCY1PR0701MB1083.namprd07.prod.outlook.com (10.160.145.155) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11;\n\tWed, 20 Sep 2017 06:03:33 +0000","from CY1PR0701MB2012.namprd07.prod.outlook.com ([10.163.142.11]) by\n\tCY1PR0701MB2012.namprd07.prod.outlook.com ([10.163.142.11]) with mapi\n\tid 15.20.0056.018; Wed, 20 Sep 2017 06:03:32 +0000"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=ysK3YgAJPfLa3uZXSi0JhJnLtT2Wdj+GuRBpQ41UUSY=;\n\tb=jTgoIklnAAV5+ccXsYqBNgH4gHw5jeoWo444aEDc1DBakNC8YzPyfpzrmJmq6uYoG0LhT8EBCLiaI7vTPwnDjFWDSMFl65q2HodRSlaVQiBEMmjz0nFYVXc0h62ed6U6fePOIbJ42sxQOkf3xBUX0UgYQ7MwNcviTDww0BflvXU=","From":"\"Kalderon, Michal\" <Michal.Kalderon@cavium.com>","To":"Leon Romanovsky <leon@kernel.org>","CC":"\"davem@davemloft.net\" <davem@davemloft.net>,\n\t\"netdev@vger.kernel.org\" <netdev@vger.kernel.org>,\n\t\"linux-rdma@vger.kernel.org\" <linux-rdma@vger.kernel.org>,\n\t\"dledford@redhat.com\" <dledford@redhat.com>,\n\t\"Elior, Ariel\" <Ariel.Elior@cavium.com>","Subject":"Re: [PATCH net-next 2/4] qed: Add iWARP out of order support","Thread-Topic":"[PATCH net-next 2/4] qed: Add iWARP out of order support","Thread-Index":"AQHTMWyPflq+Eej8QEq7TOYfdlRWPaK8ezuAgADLSOg=","Date":"Wed, 20 Sep 2017 06:03:32 +0000","Message-ID":"<CY1PR0701MB2012F515805B94D83D4CB2A788610@CY1PR0701MB2012.namprd07.prod.outlook.com>","References":"<1505841979-26365-1-git-send-email-Michal.Kalderon@cavium.com>\n\t<1505841979-26365-3-git-send-email-Michal.Kalderon@cavium.com>,\n\t<20170919174511.GJ5788@mtr-leonro.local>","In-Reply-To":"<20170919174511.GJ5788@mtr-leonro.local>","Accept-Language":"en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com\n\theader.i=@CAVIUMNETWORKS.onmicrosoft.com header.b=\"jTgoIkln\"; \n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=Michal.Kalderon@cavium.com; "],"x-originating-ip":"[31.168.140.228]","x-ms-publictraffictype":"Email","x-microsoft-exchange-diagnostics":"1; CY1PR0701MB1083;\n\t6:OZ2m6Z893iUGA8bLAejlZnEbkHDOOY4xlHGIX3hjJTOX6uhycgBDwVMSZxz2QJCckUrOjfyK1aLy2Qg8irE2TFfMAE/KmXQMEZtddgSNDZHRR9flOFfvFkZkNbyGul2w2mNCoADzwOGyrYQ+SrIS1E33kM36Xx9jArEbLZgdUP88jCQolhHR2zO7sJYtP9S9KKR5oNVqQclsBrDDuHX0q0JVJZikpewPJeMDrQSQgfKH8GSOtQOgK4EZPS6qw9Y3KHhTVg3+GRBK1nXzqzuCkHs79AmOQxJZMMxCCWjgQn7Qqr7GoqFnJsd4ASFa7ay8ivrSgSoQNY3SVYw3h5Ygnw==;\n\t5:zdN6Ggo0HfoKCamRhTvOvv2xRErEPrF61n3xovgm/1NQA/KS9kXiwYiFI7WTaY1XryQ9shYMns/og4AapWh/KhIc/UIfjtJWwnwfn+uNwXBW1n4ovUYoTTdAGyp2JxUfPAQEPkvWt5dS8KSRkJlmTO9BUarzhU11vwqILn2MHKE=;\n\t24:bgT3bhZsrrqIX11vNORnoS/myAFnDodZfQ8UEHfiDBDybmZ547Ti9b+BWcFapLu2SLb2xKJJfVF6TEmwm/cUaUAZYkyx+kGtMqrGtxMOcGQ=;\n\t7:Jq6t1cDnMcPy3rYJwbHco3qlOC46lmZ5t/VU35fXCCNXujqWbtjIeYNMycvVPeGGWPgJhNIE/FGEHHsnxV+AHQboJwnCnYcAeaPKBGkeoBQ9oZzdLRRLkC4580S0iaLrGdIkSRj/Hq8/tIN6zlgq9Nd7ORX+0LhwX5R09Xs4soZfvoEfcydNvWzrTP+7LbbvXiVHgC3fXSUmiQ7adGtjgnAVBdSInKfsyPAb4dDMjFY=","x-ms-exchange-antispam-srfa-diagnostics":"SSOS;SSOR;","x-forefront-antispam-report":"SFV:SKI; SCL:-1; SFV:NSPM;\n\tSFS:(10009020)(6009001)(346002)(376002)(189002)(24454002)(377454003)(199003)(99286003)(74316002)(305945005)(106356001)(6436002)(50986999)(54356999)(8676002)(3846002)(105586002)(81156014)(478600001)(77096006)(6506006)(101416001)(76176999)(2900100001)(7736002)(53936002)(9686003)(54906003)(81166006)(102836003)(6116002)(8936002)(86362001)(33656002)(189998001)(6916009)(2950100002)(55016002)(3660700001)(229853002)(25786009)(72206003)(4326008)(66066001)(2906002)(97736004)(6246003)(107886003)(3280700002)(68736007)(7696004)(316002)(5660300001)(14454004);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1083;\n\tH:CY1PR0701MB2012.namprd07.prod.outlook.com; FPR:; SPF:None;\n\tPTR:InfoNoRecords; MX:1; A:1; LANG:en; ","x-ms-office365-filtering-correlation-id":"aafe1a6b-56f2-46e5-1da8-08d4ffed52cd","x-microsoft-antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:CY1PR0701MB1083; ","x-ms-traffictypediagnostic":"CY1PR0701MB1083:","x-exchange-antispam-report-test":"UriScan:;","x-microsoft-antispam-prvs":"<CY1PR0701MB10839EED89936BE2FEC4738688610@CY1PR0701MB1083.namprd07.prod.outlook.com>","x-exchange-antispam-report-cfa-test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123564025)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY1PR0701MB1083; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY1PR0701MB1083; ","x-forefront-prvs":"04362AC73B","received-spf":"None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)","spamdiagnosticoutput":"1:99","spamdiagnosticmetadata":"NSPM","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-OriginatorOrg":"cavium.com","X-MS-Exchange-CrossTenant-originalarrivaltime":"20 Sep 2017 06:03:32.5401\n\t(UTC)","X-MS-Exchange-CrossTenant-fromentityheader":"Hosted","X-MS-Exchange-CrossTenant-id":"711e4ccf-2e9b-4bcf-a551-4094005b6194","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY1PR0701MB1083","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]