From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A91FE4575B; Wed, 7 Aug 2024 11:34:59 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E976C40E32; Wed, 7 Aug 2024 11:34:25 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by mails.dpdk.org (Postfix) with ESMTP id 5D4FB40E0A for ; Wed, 7 Aug 2024 11:34:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1723023260; x=1754559260; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Rgp3nCjBnYGk6+bYR0XFomTHqEgLOuvbBBKSe7KP9LY=; b=N/BDvIJcJ7dIwL0vh+SX9XFX+c+9oHxw1Fwer92DRXtdt2q2Mo1KFA64 gYim/u6COm5T6U6bU14Rt1ofsHte5P89m7bbEesdPbkca20c1P8gtUbg6 oiE+U5pRFx64uuvzGCeK6csb0S4ch70oKrxeBLDEryRb4mp7W1OVeMKoe YNqHH54Ae6B5AARnXm1WbL9GeudMoWa0fmHC45qOZZ4EtjbXQsXVh0bl8 nNqwpQaQH4llqSJq4KjHWqjQHqhR4xt7z39EGwl0ZhHvMlnjIoca/L0hi v74nKvx6Ko72f+znXpWwAh4UIW4xN7No3ft4gLd+nHWeAGSSik2bAWeCt w==; X-CSE-ConnectionGUID: ww3QlyfzR1W+O2gIF6YX4Q== X-CSE-MsgGUID: bTbg4WvsQeiaQ1etoOROhA== X-IronPort-AV: E=McAfee;i="6700,10204,11156"; a="12897954" X-IronPort-AV: E=Sophos;i="6.09,269,1716274800"; d="scan'208";a="12897954" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Aug 2024 02:34:20 -0700 X-CSE-ConnectionGUID: FPIvhQ2bSOWU+39ghnldkA== X-CSE-MsgGUID: ZhxRxb8sT4ijj9dFxv6DTg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,269,1716274800"; d="scan'208";a="87730989" Received: from silpixa00400562.ir.intel.com (HELO silpixa00401385.ir.intel.com) ([10.237.214.39]) by fmviesa001.fm.intel.com with ESMTP; 07 Aug 2024 02:34:19 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson Subject: [PATCH 06/15] net/ice/base: allow init without TC class sched nodes Date: Wed, 7 Aug 2024 10:33:58 +0100 Message-ID: <20240807093407.452784-7-bruce.richardson@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240807093407.452784-1-bruce.richardson@intel.com> References: <20240807093407.452784-1-bruce.richardson@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org If DCB support is disabled via DDP image, there will not be any traffic class (TC) nodes in the scheduler tree immediately above the root level. To allow the driver to work with this scenario, we allow use of the root node as a dummy TC0 node in case where there are no TC nodes in the tree. For use of any other TC other than 0 (used by default in the driver), existing behaviour of returning NULL pointer is maintained. Signed-off-by: Bruce Richardson --- drivers/net/ice/base/ice_sched.c | 6 ++++++ drivers/net/ice/base/ice_type.h | 1 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/ice/base/ice_sched.c b/drivers/net/ice/base/ice_sched.c index 373c32a518..f75e5ae599 100644 --- a/drivers/net/ice/base/ice_sched.c +++ b/drivers/net/ice/base/ice_sched.c @@ -292,6 +292,10 @@ struct ice_sched_node *ice_sched_get_tc_node(struct ice_port_info *pi, u8 tc) if (!pi || !pi->root) return NULL; + /* if no TC nodes, use root as TC node 0 */ + if (pi->has_tc == 0) + return tc == 0 ? pi->root : NULL; + for (i = 0; i < pi->root->num_children; i++) if (pi->root->children[i]->tc_num == tc) return pi->root->children[i]; @@ -1306,6 +1310,8 @@ int ice_sched_init_port(struct ice_port_info *pi) ICE_AQC_ELEM_TYPE_ENTRY_POINT) hw->sw_entry_point_layer = j; + if (buf[0].generic[j].data.elem_type == ICE_AQC_ELEM_TYPE_TC) + pi->has_tc = 1; status = ice_sched_add_node(pi, j, &buf[i].generic[j], NULL); if (status) goto err_init_port; diff --git a/drivers/net/ice/base/ice_type.h b/drivers/net/ice/base/ice_type.h index 598a80155b..a70e4a8afa 100644 --- a/drivers/net/ice/base/ice_type.h +++ b/drivers/net/ice/base/ice_type.h @@ -1260,6 +1260,7 @@ struct ice_port_info { struct ice_qos_cfg qos_cfg; u8 is_vf:1; u8 is_custom_tx_enabled:1; + u8 has_tc:1; }; struct ice_switch_info { -- 2.43.0