From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6C5F9A317C for ; Thu, 17 Oct 2019 14:58:18 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 65DFC1E976; Thu, 17 Oct 2019 14:58:18 +0200 (CEST) Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by dpdk.org (Postfix) with ESMTP id 31DB31E976 for ; Thu, 17 Oct 2019 14:58:17 +0200 (CEST) Received: by mail-pg1-f196.google.com with SMTP id w3so1325805pgt.5 for ; Thu, 17 Oct 2019 05:58:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=8bYuUEK7gHgd75QgXV+e+fCvq8AvCeiUxZHhg9PrV/0=; b=TyEbjEYTcE1obGEwiLJ7Fr6/5aBEdj3tcANVZUEW2ncXMmtakCBFfLzEs36dKUaiN4 VyYHArylD4P5qWOzr926xGXs3FmTTjvY0aCZN0KviirhaS94GNXbHHoZ2dZ+EpD5yffL Ju0kuS7u2USmqvfTXlCBMzelTPVCeaPtCtwmVizQ8QVPu+h4x0HPtKVi1DQIrXHATB2A wcJgDmXnj8VOMhmBsn1JGtjYUywVkbxFtEHgZBoaGSZ6HjqjhyBcI6jTUITkJ8VM10Jw A89j/jl7TuhKDRtkdV0GvhsRBVDUyOWiTzUk5HD9cbtFFvC1QPqEdnSMlqkXI5Gjd8co /lpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=8bYuUEK7gHgd75QgXV+e+fCvq8AvCeiUxZHhg9PrV/0=; b=ioYEITgWUxVmqRW95CQwxsI69JfqPGOIaEUSDRXiRMqE48vxA1pQFHhQzoZWW6twpY ochwrEIzxckJf4vu0+Bn03gnik60YrVBSu0s6UC69KrLUm4TfQL3ccilmS39lxP+XydR Clysw/JV7rVJU/kk3W942mYyqprQdRSwImmOSQREbD/bvJUQUmY2YHqVHeB+VBTlqZyL t7JNSr6jm3fkjR+bHcd4J0PxF4CCUP07K9bo4W5lFnvEXR0A9e/TKqnVCzZKKubUz0SW TDN+8Sa1X6g5tT+OTM792AJiuDc5ZjQWCFze91kYUVo4keSVHo7AonqlNNYtlzpGsK/w wMHw== X-Gm-Message-State: APjAAAVAnYHv4tQSE8lxNXZBxG2KOz/92zgmm4VSstljBfNbbZNRuxA8 dAO6VvkrHDjiL5Bzj8XpAedyYqeLZII= X-Google-Smtp-Source: APXvYqzqogMAew4Y8leQsSmElT0xQCDaLYK4g5OkTy0XQgHalFPrv4rUhpwOY//Ofd42J+WG16tjsg== X-Received: by 2002:a17:90a:20cb:: with SMTP id f69mr4061853pjg.110.1571317096306; Thu, 17 Oct 2019 05:58:16 -0700 (PDT) Received: from localhost.localdomain ([192.47.164.146]) by smtp.gmail.com with ESMTPSA id z21sm2528392pfa.119.2019.10.17.05.58.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Oct 2019 05:58:15 -0700 (PDT) From: yasufum.o@gmail.com To: spp@dpdk.org, ferruh.yigit@intel.com, yasufum.o@gmail.com Date: Thu, 17 Oct 2019 21:58:11 +0900 Message-Id: <20191017125811.29253-1-yasufum.o@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [spp] [PATCH] cli: update status message for pri X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spp-bounces@dpdk.org Sender: "spp" From: Yasufumi Ogawa Add status message of slave forwarder in `status` command. Signed-off-by: Yasufumi Ogawa --- src/cli/commands/pri.py | 107 ++++++++++++++++++++++++++++------------ 1 file changed, 75 insertions(+), 32 deletions(-) diff --git a/src/cli/commands/pri.py b/src/cli/commands/pri.py index c711c72..021f322 100644 --- a/src/cli/commands/pri.py +++ b/src/cli/commands/pri.py @@ -111,7 +111,9 @@ class SppPrimary(object): long. { - "lcores": [0, 3], + "master-lcore": 0, + "lcores": [0,1], + "forwarder" {...}, # exists if slave thread is running "phy_ports": [ { "eth": "56:48:4f:12:34:00", @@ -136,39 +138,80 @@ class SppPrimary(object): It is formatted to be simple and more understandable. - - lcores: - [0, 3] - - physical ports: - ID rx tx tx_drop mac_addr - 0 78932932 78932931 1 56:48:4f:53:54:00 - - ring ports: - ID rx tx rx_drop tx_drop - 0 89283 89283 0 0 - ... + - lcore_ids: + - master: 0 + - slave: 1 + - forwarder: + - status: running + - ports: + - phy:0 -> phy:1 + - phy:1 + - stats + - physical ports: + ID rx tx tx_drop mac_addr + 0 78932932 78932931 1 56:48:4f:53:54:00 + ... + - ring ports: + ID rx tx rx_drop tx_drop + 0 89283 89283 0 0 + ... """ - if 'lcores' in json_obj: - print('- lcores:') - print(' - {}'.format(json_obj['lcores'])) - - if 'phy_ports' in json_obj: - print('- physical ports:') - print(' ID rx tx tx_drop mac_addr') - - temp = ' {portid:2} {rx:10} {tx:10} {tx_drop:10} {eth}' - for pports in json_obj['phy_ports']: - print(temp.format( - portid=pports['id'], rx=pports['rx'], tx=pports['tx'], - tx_drop=pports['tx_drop'], eth=pports['eth'])) - - if 'ring_ports' in json_obj: - print('- ring ports:') - print(' ID rx tx rx_drop tx_drop') - temp = ' {rid:2} {rx:10} {tx:10} {rx_drop:10} {tx_drop:10}' - for rports in json_obj['ring_ports']: - print(temp.format( - rid=rports['id'], rx=rports['rx'], tx=rports['tx'], - rx_drop=rports['rx_drop'], tx_drop=rports['tx_drop'])) + try: + if 'lcores' in json_obj: + print('- lcore_ids:') + print(' - master: {}'.format(json_obj['lcores'][0])) + if len(json_obj['lcores']) > 1: + if len(json_obj['lcores']) == 2: + print(' - slave: {}'.format(json_obj['lcores'][1])) + else: + lcores = ', '.join([str(i) + for i in json_obj['lcores'][1:]]) + print(' - slaves: [{}]'.format(lcores)) + + sep = ' ' + if 'forwarder' in json_obj: + print('- forwarder:') + print(' - status: {}'.format(json_obj['forwarder']['status'])) + + print(' - ports:') + for port in json_obj['forwarder']['ports']: + dst = None + for patch in json_obj['forwarder']['patches']: + if patch['src'] == port: + dst = patch['dst'] + + if dst is None: + print(' - {}'.format(port)) + else: + print(' - {} -> {}'.format(port, dst)) + + if ('phy_ports' in json_obj) or ('ring_ports' in json_obj): + print('- stats') + + if 'phy_ports' in json_obj: + print(' - physical ports:') + print('{s6}ID{s10}rx{s10}tx{s4}tx_drop mac_addr'.format( + s4=sep*4, s6=sep*6, s10=sep*10)) + + temp = '{s6}{portid:2} {rx:10} {tx:10} {tx_d:10} {eth}' + for pports in json_obj['phy_ports']: + print(temp.format(s6=sep*6, + portid=pports['id'], rx=pports['rx'], tx=pports['tx'], + tx_d=pports['tx_drop'], eth=pports['eth'])) + + if 'ring_ports' in json_obj: + print(' - ring ports:') + print('{s6}ID{s10}rx{s10}tx{s5}rx_drop{s5}tx_drop'.format( + s6=sep*6, s5=sep*5, s10=sep*10)) + temp = '{s6}{rid:2} {rx:10} {tx:10} {rx_d:10} {tx_d:10}' + for rports in json_obj['ring_ports']: + print(temp.format(s6=sep*6, + rid=rports['id'], rx=rports['rx'], tx=rports['tx'], + rx_d=rports['rx_drop'], tx_d=rports['tx_drop'])) + + except KeyError as e: + logger.error('{} is not defined!'.format(e)) # TODO(yasufum) make methods start with '_get' to be shared # because it is similar to nfv. _get_ports(self) is changed as -- 2.17.1