From patchwork Wed Oct 3 18:16:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 45988 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1DD961B20D; Wed, 3 Oct 2018 20:18:58 +0200 (CEST) Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690061.outbound.protection.outlook.com [40.107.69.61]) by dpdk.org (Postfix) with ESMTP id 847CD1B121 for ; Wed, 3 Oct 2018 20:18:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WJRaSoyYQEb2e3nDo1VjjgoA52Y2Nwr+TzKFA0mbRfA=; b=N8YnGG76cuJehBSW5gabUwOAYf17hGju9825ekIveiQN6eZspVrQ3T8R2FJCQcjC91DgrfbG0p0REagxD18ytlrpS2WoSuGRXBZGHoYhmwyee9CF0II8gU85XftsEKxyvx8pAa5t2AAxLr883KrV2tRMvRSyLMMO6eneqmKPkgo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; Received: from jerin.8.8.4.4 (106.201.57.251) by BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.18; Wed, 3 Oct 2018 18:17:41 +0000 From: Jerin Jacob To: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger Cc: dev@dpdk.org, shahafs@mellanox.com, Jerin Jacob Date: Wed, 3 Oct 2018 23:46:57 +0530 Message-Id: <20181003181657.32236-4-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> References: <20180913134707.23698-1-jerin.jacob@caviumnetworks.com> <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [106.201.57.251] X-ClientProxiedBy: BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:d::33) To BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9f9d8bd-29ae-42b6-2112-08d6295c83a9 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BL0PR07MB4996; X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 3:pPGmAH2uqkCzIxwsZV244ifNMB5CGHxnYdJq7fkHwzoLq9ANh6ixYB/jC2yALwMGKE9kQ+/LDUEqvMra1WevXoUU6cQMFEj3t/rd2NnEf9bRxLKwQbAp9QB8E4zVFvMir7SerKr90SuE4kG7KqGqWWo/xB50tRtBXfql2iIEh/ajgnj0sBSG0bvDQ7O68/IUFn+fjhxSBcAKABILOk0H2R9q62NUdlPag9vKTHXgrZW1WcIJVHEaTpLVG5Qz+goW; 25:7cFNcKZShBq6l9K5Byx4WpAPz+f3Vwm/JgUP5IjPGlESPr7X5MvsLKyQadN2Zn8mRh5OQhmnsTuxGkOdjzWqm6SiFEMf9l7dtAmtvD13pixAs6TxvfaeLUbBz3VesYQxbLv6WNapPmv/HmnqLomjX2p5yyVJVjg/mVlCj3AX9m5zTZByOvFHwt1DlCI0gRHGZouS7iAxuhcQOPrxR72R0mtOKCsOV6RZAqZojv/hf+SRbM3KgHAxDp293+FTnx/l4o5rB+mv8uoE7t9aYq7joe/rPEwT67OJjGjy/EJe8uHZBzs1Tj9CbpB6C+4l13Kjhy7ADusHGnCFOxyK2T/X/w==; 31:7MxYazJ3sWoZrMqXxQTfasyC9zWI+oXmMDe4tD5ho7fs7aM6H9l5qx7YBOJ2YIw2jO+d56QHZw6aU6xVrjKmSaq2t/4h2qRjWurpxbHkCIjRu0t8X/Gv/3KCfvW6HC/sJan00uoRVLmz74w+IEL3dCSUTMPbDKXqhP53LIN+Y/1DdHZMTPf8aWGs6HYchaDCAoXis5HlMu7MiwYlZN9FahH4/WjHGxW0tIpw7feYN34= X-MS-TrafficTypeDiagnostic: BL0PR07MB4996: X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 20:EZn1u2SuNPywusHZLtPwR9oaXfWZ1h5QwczGY4tvZlkpHXh14k//mfTwSmPjI2Fw1wNHVKgK/U9CcP7fqxa7di8gUuhHMch9gNmvLKSJQ23/+xfYX6SoWyzVRps4WCMSO5UeDGN0gjpVHwj+iuAP0y1C+7K7w7b2pcZJZ/6lbfct1SHXqao0WjntJBPfb4BVQNSNfy+cI5lqaKZ0tExO8WOQPWdjMVMngzzsVc1ywwjA6gnjr8tYyt8tweWqqLTxvR0kXb/vZpa/E5eA8UqPHZjr+dVQJWVB0l2BAp1O9ENFvMUwMg5bYxviFDwt6XOBasY241dkVDjFTqwV2/qFxdrMtQwHhweiG3mJ1lIHrn1P9uqK0UQxLx4DYGkAZJfmJZDjE9lwoEkrPJe98Llp34oq/CFk+bvbWVF9+m89nhdvZR7QkWbNboKaqPPoomIvpIdR4WLjmS55zpDM3+WHOJZXt2oWsPvuWSQfLrYS6uGBGUM3Ui0JRrVnenQxVMUSd6OOIPCjULDhDmZYFzVDgwVudH0hMWw+bB8x6Gblt1DxHVQ32/zC9pqewd+sZafHhJeQOb/v44ZK/X0B+r1+rFXOCI4uc7q0oLX9CKDhfEE=; 4:PlLSr1yRdIi+DTNhUq/oAPPvGNKPVEeGCZGj0XM/rTkmr6Yh56Q/zC5feceykx/KcYZv3wE1aOKzEcGuSkj8vJ2KWZH7yPdliYLw/7qY7yqeXj7aAwvbQJGo0gv7XzwZgZetVTfSy0mqnlU66Ed8pti+Ly2QtFmLHGl7s8x4Vve8UaXzQlhqOcUrs9x5cPBVelS44o8GMRAW8DiqoAL9If0HhZTSnDLm8SMvTnApZM+t1hzabtxW2pYaN1zBsHbhnQuXJgLycsZ5d3Z4eJ7TUw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(10201501046)(3231355)(944501410)(52105095)(3002001)(149066)(150057)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(201708071742011)(7699051); SRVR:BL0PR07MB4996; BCL:0; PCL:0; RULEID:; SRVR:BL0PR07MB4996; X-Forefront-PRVS: 0814A2C7A3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(136003)(366004)(396003)(39860400002)(346002)(376002)(189003)(199004)(386003)(110136005)(36756003)(956004)(55236004)(2616005)(446003)(97736004)(26005)(105586002)(106356001)(16526019)(186003)(11346002)(107886003)(6486002)(50466002)(48376002)(51416003)(76176011)(1857600001)(52116002)(7736002)(478600001)(72206003)(42882007)(53936002)(66066001)(8676002)(2870700001)(50226002)(305945005)(5660300001)(486006)(81166006)(44832011)(47776003)(8936002)(81156014)(68736007)(5009440100003)(2906002)(6666003)(316002)(1076002)(3846002)(6116002)(4326008)(476003)(575784001)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR07MB4996; H:jerin.8.8.4.4; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR07MB4996; 23:Z8Aq+Zi/wq3FVEhxY3H+PtcN61aSPxCx3No23mcbg?= LQQueZxlIItzXnKROOP8lljti12JDViTowlGThGgAEdxkavTmcOg6SjeiAYX7MiHTXeMl0mLba7jneBkLv1DZ/gW4x1ARcBYQ94+ADelhMcbJryEPcQH5GIWBkffek8d7LG75JinFVSCcgC73l3EKMTuK75JkzDZ2gRLBOTg74quz8mTQxpKNUb8+2b/RczNchQxPGP2Q4AHu/ERGSF4MAv9WoUD8F0ZkGApLHA6X/1YoLjQqvHgfa7LuyWniCuBF+JBkCwLoRHp0TsCPDk1mjritzGc0MGsSFKkiQjg28L4+Jdbhv41ZOGlufQZNN+dtcd2jAZ0UXWdnzAZKsL9Ax1jhNIScJbJ7DW2qjS1lxQuOfpWv6FdyFF8D/u9BX/kaLgmMEeTpv//bPNRxVtDCrwUoEi8+rAfSPXOPzh4eIHfZzC9gHwDQvDU4zxWYQvk2Bi/QI+yPPRUIEqPW8sDzuA3LYIi2/klAFtd1PIkN1mKdhhu0jU02jbw2FnrDiPvRoYZ0vGZuH5zv6D13jXj9srZD5hYHpdf3pwRnxN15C1RQ6lHTkzUh/jZELAX621DVovHwRoWEYkkCtYlxBvPW9tNGs2LWN4m2jyVttT1ZGSGDZeL4GxSf+tu7jagQnnPLhLw9jjPt7XpMCMSzCUKYvK4+n56u6k0RL+wwRdOn1NrU/n80BQjLBcpVm0l/sQbBwmdvaXr/m/5RgG2uAunqrhGaRUgM3SNkWP2ICwwLNmyLNxvgFzdkaJzR9a8FKk1P6ARjSHBqyDsls0OtqbT3cAfNgrEY7V9qp9cgT7/EHlj2qVQeuZN8tsn/egULiW/pjx8Bkqj6025VVm/7B1h/P2nj0MkY1Eu5DmUrCz3ePuU/xlgyNtkhEg9mazcLnNzV1rTkzC0NOXOITJ0zeyXn2k+MCDNpJ0kIftKDmADv+6esioPDGN/hoCkW4E4fsvlApYPt7xgF0lKGGO/USpZGj/W0JcnW+ilzOIsCLtUHKTFNXA+Ec+0Etv5/WVK/D3rriYSl5V5KFR9dHDr93XNwBAfEhfFVdJULrffViNbfzd1BGrKU2sfAzeywVXsjX5/MAGRn/wtVQIHZyg4K7yK0BYnBoYtI5zTNTlhHx6MqR9PLqNzS8DS6BVotwXH7Dq/3mTV77QLo/4ZfkmlmQqabhPREYV+TsZZq+XCA50pMpDkZW26/cQLICzpUTocivgBosm02VmyufMbTK8FKRInEG89z24fLtVMr0wLMV3U1bSWun4DAPCXB/macUICuxoU5eUiVeUwP2MUqlMgrGmT1oB X-Microsoft-Antispam-Message-Info: 6Qg7f4TtJPICR6nTT/qcwZU/CHnGiYyyS5W/p6n1Vz9N6eTMImO5kbSqYDF/xwNSiO/yTLwDVrx0bcWrVj9TFNt7K5e9BLYdasBWhAjIbaM4N5/KF2Gj0exYAO248xcE0sABtJ2qYeL/X1vlOOWw+PWCQ2hoMrI7S8hUknkLVOorfElhmDg6hKP26KuckxYppyvBEZBUiPs/Wyz8Jtye64XJDqahhhmXbJR+dk3dwjWByYv8CXfmk7W4IE8PMNSOctl/ZXcSEKbs+rK0dabb8js5nYh+1xBQQXXiPLk8QtI8Oow5GMKYQVXP42VVsyPFWz8IJs0/gaqEzyCBcy7kkTSEYwd+8v8yhzic4Iro6Aw= X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 6:MnL8tYQ7eAyu5fReNsBy+GbdQ4EFpQX3J2/Sg84JleCrzOCGPJCcz+g/5xnidNjkEhNjUH+LmNLlxj937CjJL8fDKOiehcgNvP2AbNo+Aq7cJvEGniicZG5N3iOdAg1g+Ga0JJaQijAmnfdh7y1FyRKLDwMFPbVAI8Ja8egDlvWVaGU7BXXLcysr2VF6pyqhdVYSBnbz+070gbh/JoU35DmyvKbbBCqoGKiIc7me03OSNtQI1pXjyDXlxtMOmDq8slXhRegPjOQDr8ZMvp3V+XZtzSZR9kIULDdzwB5DdVw0qWieAK58i+GJHtkrl/pPiDDJd6q72J8lbTI5fyK78PJWhGhfmun6Lt4/Bhi9d5wtVfICu4Ga8HzqTroKnOyYORKuWRtpid+wqMxHb4AuJMUkFS57g5v1YXw4BWVylaTVwhwBdSnTUa13yb7Z5s5SQ6QS7i3WJfOqbT+iWmCD8Q==; 5:J2C6zwo4zKz5yulTiKyCkC9BJPKycHnBsHvr3G9lmadhHU2UNcQt7Z/lQWVjQgIYOfhdHkQ72b298g/K7whiTSfvQrkRK8BzsfwaMFyaJnhIUEEL9ZjGMep99oOinkssh2kZt65rL4tRmH+SHPdP4xwB2xb4YCyUTHoEhpOVPEI=; 7:ESsWYOpR4E8T8wnaO8hQeZj0R1jDvvdEGaq53NQi2nRw6zODthkioDBIwkMt5HQVj0PNidMKy6v2etfEgQCF2WrkqoIY+SOkBgm39tgATMOQYeyddFrSLJecipu4MQ1TfkcLKVP8zDNutSiEFQQRWEvtANIZbzPfvUZgLeR2T2cNf561xc84hIV1vdAu9nv2qHx3Y9/7dm2rLab1+823AcHi8PypI56ZOyi6jPdrC9+60lTuSbQz1NH5676ZpYox SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2018 18:17:41.9789 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b9f9d8bd-29ae-42b6-2112-08d6295c83a9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR07MB4996 Subject: [dpdk-dev] [PATCH v3 4/4] app/testpmd: collect bad outer L4 checksum for csum engine 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Collect and prints the statistics for PKT_RX_EL4_CKSUM_BAD errors. Signed-off-by: Jerin Jacob Reviewed-by: Andrew Rybchenko Acked-by: Bernard Iremonger --- v3: - Added Reviewed-by: Andrew Rybchenko - Removed unnecessary extra empty line(Andrew Rybchenko) - Simplify calculation rx_bad_outer_l4_csum logic(Andrew Rybchenko) v2: - Added PKT_RX_EL4_CKSUM_BAD statistics --- app/test-pmd/csumonly.c | 5 +++++ app/test-pmd/testpmd.c | 18 +++++++++++++----- app/test-pmd/testpmd.h | 4 ++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index ea5b112d6..312b7e1e3 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -701,6 +701,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) uint32_t retry; uint32_t rx_bad_ip_csum; uint32_t rx_bad_l4_csum; + uint32_t rx_bad_outer_l4_csum; struct testpmd_offload_info info; uint16_t nb_segments = 0; int ret; @@ -726,6 +727,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) fs->rx_packets += nb_rx; rx_bad_ip_csum = 0; rx_bad_l4_csum = 0; + rx_bad_outer_l4_csum = 0; gro_enable = gro_ports[fs->rx_port].enable; txp = &ports[fs->tx_port]; @@ -753,6 +755,8 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) rx_bad_ip_csum += 1; if ((rx_ol_flags & PKT_RX_L4_CKSUM_MASK) == PKT_RX_L4_CKSUM_BAD) rx_bad_l4_csum += 1; + if (rx_ol_flags & PKT_RX_EL4_CKSUM_BAD) + rx_bad_outer_l4_csum += 1; /* step 1: dissect packet, parsing optional vlan, ip4/ip6, vxlan * and inner headers */ @@ -991,6 +995,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) fs->tx_packets += nb_tx; fs->rx_bad_ip_csum += rx_bad_ip_csum; fs->rx_bad_l4_csum += rx_bad_l4_csum; + fs->rx_bad_outer_l4_csum += rx_bad_outer_l4_csum; #ifdef RTE_TEST_PMD_RECORD_BURST_STATS fs->tx_burst_stats.pkt_burst_spread[nb_tx]++; diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 001f0e552..2a641fcfe 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1040,8 +1040,9 @@ fwd_port_stats_display(portid_t port_id, struct rte_eth_stats *stats) (uint64_t) (stats->ipackets + stats->imissed)); if (cur_fwd_eng == &csum_fwd_engine) - printf(" Bad-ipcsum: %-14"PRIu64" Bad-l4csum: %-14"PRIu64" \n", - port->rx_bad_ip_csum, port->rx_bad_l4_csum); + printf(" Bad-ipcsum: %-14"PRIu64" Bad-l4csum: %-14"PRIu64"Bad-outer-l4csum: %-14"PRIu64"\n", + port->rx_bad_ip_csum, port->rx_bad_l4_csum, + port->rx_bad_outer_l4_csum); if ((stats->ierrors + stats->rx_nombuf) > 0) { printf(" RX-error: %-"PRIu64"\n", stats->ierrors); printf(" RX-nombufs: %-14"PRIu64"\n", stats->rx_nombuf); @@ -1059,8 +1060,9 @@ fwd_port_stats_display(portid_t port_id, struct rte_eth_stats *stats) (uint64_t) (stats->ipackets + stats->imissed)); if (cur_fwd_eng == &csum_fwd_engine) - printf(" Bad-ipcsum:%14"PRIu64" Bad-l4csum:%14"PRIu64"\n", - port->rx_bad_ip_csum, port->rx_bad_l4_csum); + printf(" Bad-ipcsum:%14"PRIu64" Bad-l4csum:%14"PRIu64" Bad-outer-l4csum: %-14"PRIu64"\n", + port->rx_bad_ip_csum, port->rx_bad_l4_csum, + port->rx_bad_outer_l4_csum); if ((stats->ierrors + stats->rx_nombuf) > 0) { printf(" RX-error:%"PRIu64"\n", stats->ierrors); printf(" RX-nombufs: %14"PRIu64"\n", @@ -1124,7 +1126,9 @@ fwd_stream_stats_display(streamid_t stream_id) /* if checksum mode */ if (cur_fwd_eng == &csum_fwd_engine) { printf(" RX- bad IP checksum: %-14u Rx- bad L4 checksum: " - "%-14u\n", fs->rx_bad_ip_csum, fs->rx_bad_l4_csum); + "%-14u Rx- bad outer L4 checksum: %-14u\n", + fs->rx_bad_ip_csum, fs->rx_bad_l4_csum, + fs->rx_bad_outer_l4_csum); } #ifdef RTE_TEST_PMD_RECORD_BURST_STATS @@ -1378,6 +1382,7 @@ start_packet_forwarding(int with_tx_first) fwd_streams[sm_id]->fwd_dropped = 0; fwd_streams[sm_id]->rx_bad_ip_csum = 0; fwd_streams[sm_id]->rx_bad_l4_csum = 0; + fwd_streams[sm_id]->rx_bad_outer_l4_csum = 0; #ifdef RTE_TEST_PMD_RECORD_BURST_STATS memset(&fwd_streams[sm_id]->rx_burst_stats, 0, @@ -1483,6 +1488,9 @@ stop_packet_forwarding(void) ports[fwd_streams[sm_id]->rx_port].rx_bad_l4_csum = rx_bad_l4_csum; + ports[fwd_streams[sm_id]->rx_port].rx_bad_outer_l4_csum += + fwd_streams[sm_id]->rx_bad_outer_l4_csum; + #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES fwd_cycles = (uint64_t) (fwd_cycles + fwd_streams[sm_id]->core_cycles); diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index a1f661472..106aeefc2 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -112,6 +112,8 @@ struct fwd_stream { unsigned int fwd_dropped; /**< received packets not forwarded */ unsigned int rx_bad_ip_csum ; /**< received packets has bad ip checksum */ unsigned int rx_bad_l4_csum ; /**< received packets has bad l4 checksum */ + unsigned int rx_bad_outer_l4_csum; + /**< received packets has bad outer l4 checksum */ unsigned int gro_times; /**< GRO operation times */ #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES uint64_t core_cycles; /**< used for RX and TX processing */ @@ -165,6 +167,8 @@ struct rte_port { void *fwd_ctx; /**< Forwarding mode context */ uint64_t rx_bad_ip_csum; /**< rx pkts with bad ip checksum */ uint64_t rx_bad_l4_csum; /**< rx pkts with bad l4 checksum */ + uint64_t rx_bad_outer_l4_csum; + /**< rx pkts with bad outer l4 checksum */ uint8_t tx_queue_stats_mapping_enabled; uint8_t rx_queue_stats_mapping_enabled; volatile uint16_t port_status; /**< port started or not */