From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Pavan.Bhagavatula@cavium.com>
Received: from NAM03-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam03hn0220.outbound.protection.outlook.com [104.47.41.220])
 by dpdk.org (Postfix) with ESMTP id 1F5341C6B1
 for <dev@dpdk.org>; Wed,  4 Apr 2018 16:30:54 +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;
 bh=eFdtKfxojlDMLuahPT8+gMmk7WN27NHDUEfHROJaY9Q=;
 b=W4VrOHVlmmLfZziMnXtsdSDAIcUguOQEDh7ri16OvKrJWB3YTNTyhXnm4gHI1s9aRHvl5B++UnY1nVpgvCefVuDG5svgf5R8fyB7TJMejNhn/eJrumOHfn1U4LybAXro/3tEcRuGxAIZw1ZbWrC0o9pVD1YN+PzjdzP3raBvmCM=
Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Pavan.Bhagavatula@cavium.com; 
Received: from ltp-pvn.caveonetworks.com (111.93.218.67) by
 BN6PR07MB3458.namprd07.prod.outlook.com (2603:10b6:405:64::21) with Microsoft
 SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Wed, 4
 Apr 2018 14:30:47 +0000
From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com,
 thomas@monjalon.net, anatoly.burakov@intel.com, lironh@marvell.com,
 bruce.richardson@intel.com, fiona.trahe@intel.com, shreyansh.jain@nxp.com,
 hemant.agrawal@nxp.com
Cc: dev@dpdk.org,
	Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Date: Wed,  4 Apr 2018 20:00:25 +0530
Message-Id: <20180404143025.17190-2-pbhagavatula@caviumnetworks.com>
X-Mailer: git-send-email 2.16.3
In-Reply-To: <20180404143025.17190-1-pbhagavatula@caviumnetworks.com>
References: <20180319092726.10153-1-pbhagavatula@caviumnetworks.com>
 <20180404143025.17190-1-pbhagavatula@caviumnetworks.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [111.93.218.67]
X-ClientProxiedBy: MWHPR2001CA0002.namprd20.prod.outlook.com
 (2603:10b6:301:15::12) To BN6PR07MB3458.namprd07.prod.outlook.com
 (2603:10b6:405:64::21)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2e443c38-8335-4313-ac34-08d59a38ab0e
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603328)(7153060)(7193020);
 SRVR:BN6PR07MB3458; 
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3458;
 3:p4H1vZk/H5BY6Qy3gVz9Y4eFKSTa4y5mcM8k18yBmH46kiQjT754AwQCMeSDZ47qIei8VYK9/cjr9+K4FvnlJweZ/Vi8rzEMN3ZdnZRz7KOBTVb9NnvXt11IcHJhQ1dzj8taA8N3Awppm/LMGzCcDlAu/TCxxXU0r5oEufc/Woa71ig/qFXcVIDPBeX2n7OV/wDr2HVzNcMuGtXiRZCkI3AcCqwEWx3VQeK3ZgLT1w4X+NjOppf+3D/m2QkEaiul;
 25:Hs3OKLxfio+swduJrADLgMzQW+YHvX5ybdottDJ2yRDhJ0jheNUTjod/+QTVWJUaxOHCWwrg2HBXPDlIedkbFuOXy3zDzi67wX8FKQz4YLv4L0sTqbBFsWK9cPk1jSg+94TOFJriYZN/FvuiR/kTI/zdXj+CGKo50gRFwRjTnqiOjcF+0KgcNSwYf2eV4xzq1MmczDW4Z/tzibZ9Y/nAZzi3zzcWn7JZRnGtIAISjnph9YBFZFprRB8JYXIAu7v4a1L7YrM8ScgdmIZmiffH8spX7VilrBvJtiDY1uz0QAaTe2gBTcTo0zS3KpcTbsKyAGR/EQ75dU5sX3UK+hCrgw==;
 31:yEYhQV5FycmJNorywkvbd24eoH9DfmA8qE08O20m9ZM8BhFEywJ9Vh5WF7gI2mFPSijUZvMtj/KLX0LxkxlpC25p3M/esDyqCq0RCOOASW/pIvVNdTYgJHuqxC2gYAo2cgDlB5vLIB/DL2MMaKVDVfyT4HfqSVu8Yvu27H3hjp2yE7jWPhWaLReiZg3qwve7Ib15tHl37gLTaMwhsvweJK/MCPQWdEJ7mE2qFs3O+iA=
X-MS-TrafficTypeDiagnostic: BN6PR07MB3458:
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3458;
 20:QH7u84k2rkS128SZfx6q+L3XqQD9mBPrGkNf/2Ld2LY1ihoAbxLSq/nATwBKezU+HVzpuQPTzAePVFxzbqMHtpuK1jSTWlHaPepJkun+yVNc7NJZdm2XMpy044LZn7yOdWVmrYNmBTM5LymycsrSgCkH0p6nTCckm7Elh01oVs3K63UVuF6OSOEO8N/Y2VoDqNCTcQRH2aIJbKbSCOrcdA3L/V5C5hMaj/z/b1SjpIP0BGMXaLY3lCwwrK4W1ME0DsGwZsVFLri8iarmuIm/XOwMYtwpdNQHd3K0Y+7YlFdSduJu9K67R6OrZG9OdAeXbN/8UgyRbmsZlPJ838G19BRu4PVVZYrMiLaWILwsuIvpfjc9EBCQhfqng9CZWHhneeyxxgZqbnwAkjun+hp6KynQq+Blwy+Qf6QlbdlCtQ/7Ls0WRffylD/N0EDjLJ7mhudrVkzuGP2mnXRvczd7fOrcNTkCH/xRdavUIGzT550yTe72ng0Lcwsn59+vKJ3b4RoYKwynbvji9Q0BI0fit+sV+THypSeoa2v5ti0aCJEOW9mZlgLb01G0kBb/No/hxb2xd/WklwU9yiTs4HW/mBYyeSG9CtzUKFq6YJKihGs=;
 4:AEUtzwvXlBmDrR3EoiqUOivanVouIPV7XUqeHiAL1DXbRy0McOQfPuu5yqNQzZwpa+CgesMrvMA5e95Icu88IE/abVHFbGCe1ae+/oVZF9pd687Wy59E34IZzCN4Um60WTvp6vYsE69G1r27exWqkbkKTbzidsC/7HR0jKoRHbfqvYlwZTYAxvwpNmRxGQoYsa+F2PgexR7Yfktt/SZT6gB7zmYqtneQb/Zcg2ndvlCSJGJeAOSac+lsHnw8RIdiEtDXd5PdvCb909c9hKq8YQTXPbTFrZkIjFbsBLzNE8A8OXxH5wTYhe6bpfW2fVz+
X-Microsoft-Antispam-PRVS: <BN6PR07MB3458B648841E9AF3EEE794BD80A40@BN6PR07MB3458.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(66839620246622);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231221)(2232076)(944501327)(52105095)(3002001)(93006095)(10201501046)(6041310)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);
 SRVR:BN6PR07MB3458; BCL:0; PCL:0; RULEID:; SRVR:BN6PR07MB3458; 
X-Forefront-PRVS: 0632519F33
X-Forefront-Antispam-Report: SFV:SPM;
 SFS:(10009020)(39860400002)(376002)(346002)(366004)(396003)(39380400002)(189003)(199004)(16526019)(6666003)(1857600001)(106356001)(1076002)(97736004)(26005)(316002)(478600001)(3846002)(6116002)(16586007)(47776003)(66066001)(5890100001)(5660300001)(105586002)(53416004)(5009440100003)(48376002)(50466002)(36756003)(72206003)(305945005)(7736002)(68736007)(4326008)(476003)(575784001)(42882007)(956004)(2616005)(486006)(50226002)(53936002)(2906002)(107886003)(81166006)(81156014)(8656006)(6506007)(386003)(59450400001)(446003)(69596002)(8676002)(11346002)(53946003)(76176011)(8936002)(51416003)(52116002)(6486002)(25786009)(6512007)(59010400001);
 DIR:OUT; SFP:1501; SCL:5; SRVR:BN6PR07MB3458; H:ltp-pvn.caveonetworks.com;
 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; BN6PR07MB3458;
 23:WtmhIJPJ35Woa7Lag673F0cx5Anr6lDwKiywIfxn4?=
 =?us-ascii?Q?YrKOdI+A1gMbCfm8M5Mh6Qmx9COfkqPN4JBlrPI2WGiK6qTP99ly2JYbPJ17?=
 =?us-ascii?Q?6QohKLubwmKvYL+HmVW+j4JT4QNQy8gGsgwJeJrAGj6P6KKeKFjN1I8wdrS0?=
 =?us-ascii?Q?F4OR59aPotuKaQioHBJZUEfZ9WlVOIi2vYS10oROA6aCh4mxv4fYpbFTu+iy?=
 =?us-ascii?Q?R9yZEj78j7tlOfV2VyJtVrYE3cjKeQDsBBYKIzwA7DhYBtV6e7eW37I/WcaJ?=
 =?us-ascii?Q?XUx9jBRg0uBX2yVxxQJvc4dmR/Ybo5dSm8q1GmNSJ+dXFu4EtAsu1y7yH9jM?=
 =?us-ascii?Q?Fvs1oegtqLDkkWfaT2D2IxENe9r7veqlbNx00DTD653QaJGcrVY3fXnOhe9/?=
 =?us-ascii?Q?7sNJmtIbCYvsnTlh5wdRh079xZ4ocXu0WHiHINPEFm5bKMBdstuKez0DnxE1?=
 =?us-ascii?Q?znMw5bS5emmmM/9e8k2N5qIgMi5xptuYtFQSVimpxwc3T8zWJbUYdejezjYm?=
 =?us-ascii?Q?x3FO+QrnGBSM8Vdaz/RbmxUjomIctv6HtSZyfcviU1KoYkYY6bVx5uxwjKxQ?=
 =?us-ascii?Q?pvj8BgJ0x1ifqcGh3a2Nudbk6G+Zs5faT7ZQbBirq92gHcml4Ztw7wHt874K?=
 =?us-ascii?Q?NvzcsCBOMRgqkQachmkKsPN6SxdIgrRekPbXE+nZXJMz1UL6EtHhQ2rpmfGz?=
 =?us-ascii?Q?wCkt4FVRUmHZiIXC9Rsc0/gScMDG20I5T9NpXtURWIsH3Gzhjzn2yJXqzkaM?=
 =?us-ascii?Q?zRfLZbMKR1NVi+hGMvuZKh6lLwjFYjHss4nSS+u+mCjBAi3W+9gQC8+5sVOY?=
 =?us-ascii?Q?CXmNfTPborHNYlTAzbeevsdWHZxtwLO6boW3AzFCIwF65Xeyu0Ol4Mdo9gl6?=
 =?us-ascii?Q?8vae85mPcoBaXTW4fR/X97ab8jA0ezkhS+Dy46x+X9NUAOYBbHK7W3lBdxUR?=
 =?us-ascii?Q?ZO7u5b2ZN27FpgAcLxM0OBxVp+tJsLxuKE8yVdGfDyx4WYawjjgZock4c7yF?=
 =?us-ascii?Q?LsF20bizYfxWATGLKPde/AngUs41KLd09dDNL71Ca/erFbybjsqrtaDDa+N6?=
 =?us-ascii?Q?T78SU/5Gh9t1NwLY0ToiBwA4/HHNzi2U9l2ZvKNovnBfwkL93NcBxpV3ulw7?=
 =?us-ascii?Q?9clZUJU+3oiX0L2p1MNHsyD57qQE9wCJYkJ6tZ9W6lKrn5eI0kEPgB3voOre?=
 =?us-ascii?Q?/BENs6Rc/QjeEwSckkAvNoi8btJOFzxDMPPtZTGOQHG8bcJdGgSZ0r6jroi4?=
 =?us-ascii?Q?i5EwhM1k6I5e55QNWxFqTdtVztNBqs/wg81dzNvihTfVOlbPEvOEyUUhsulA?=
 =?us-ascii?Q?0Nn0wOfkH+nCxMQZ4svl12l+MAvYTcPQ0fXzh+oE6H52tuYi7Ew8TPXC2nkM?=
 =?us-ascii?Q?bPJwAblAy5JavFK/DboctdGjHrL4JnGdbhGY6UA+E2xIp666AJmeF7YjYDnY?=
 =?us-ascii?Q?F2ycwsl4Lg+Ptcn27W81L7XPHInhZssqPaVtmVfn3kJPW1hMHgC7Hg7hSn2R?=
 =?us-ascii?Q?0XpqlFihdy3CA=3D=3D?=
X-Microsoft-Antispam-Message-Info: e0ZXZuxfsJnyg3T0DBnz1d0B8pyIcLWzuyfC5KLdWB6iYwX6nQcwpd7fjCDietNjmBzFpqRiunGqC/9ZFlvUvjE4Ry8JE9yl3l1AF7wnBCMKYsAmomcA/JC+2kmU/wyvyV0p5iAIbMjHkrbasMWPuZCDY6sh/Gc9Y0uUBomcR9RfYpoih6tUEkfGQRHfzYQs5ufs8wB5u3c1DVoNhCOHCo90sUbobNUy7VJrbKBkKHICySfbo8dxVL0/ay7XVkE1tv2u8zLrbcMjGyfyByLh5zVfQFvcEeao6cemTIKhxZycYnbvOufUKI1iFyDMV5YWvoe6N8XIHmM4zFY735mhISv7ffHEQ+Y1JpYOTZy8y3RuQk9J/A+NEEBcvCMGAjtrXGNDsgCKBwD3KLeEqJbso+gLhPLOLSmGToA/qoUTaT6U/qowcam52YGbG/4Od0hpjNeyXpW5031x9RITdAXZaPOP32edO/Rzyg57T6+AH8iCWjf+wN1IK+mQCNmWqYDb
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3458;
 6:niKG3GsEU1JqEtY3IEyZjuSK9+r1MFrp+owubrTswZfJ5Mvjnh+bDyagRwhvhZNuaetjXTMYPH+iAq0M0QEFRMQFCHwus9vv64VbJ8Tfbex/3XuDmjZFycAtVI5uhVX5ETik3l5qbkGP6YJ/iQT1AYbxlJa2Zsl0xg+UNCBu74zw25CSFszQsuVfiRd9DHd9JfQwFJEnu2WJ0gpCChZ9p2CnWuwmq/b8EceTx51WdavBWUv1csnwM4GyMUqEtEPhymg0eclPTIacqXSSIyn6iIjRqJX2clLfU8sNtN1+a14gKzS2ocG1k7CDNxw5HU/01r9KmQo9HebiiH4kpQtvHkK9VVXnNIri/OrWOlGizUL4/v/Wn7ifHBKn4XIJgZcQ9gi3b1u3M6LAA0LUvhKm52hHyJt3+GS54LM2gRdb1MmX3R/gwsmlnd/tljHLSDqwjBt+iRjc/6Gx8tpAhOAHUKJtYMrtA0DS1TLgRBmS2iIh5cnh7TV5NlNOiD/sBxfo;
 5:sqbPg7LKkLe0vF3HFemZqZKF+ElkeG8lqDcDMOoVVkGl5ocd6ZCstQD539TWTb16VPSDA16s2INaIJz9jW/fNAYBcIKwkfommcT13dT04lEp8ruMI6y5uYB15RLD8jTZ1wZLSD2ZyW+/BdiszcGti4YdkSzObVBywU+WqmePyAU=;
 24:x+WorZ2jICioZFLipV80jvKkto91Q0V8hJLS378X1f9b70lqOHVQMUkNUlG9sMwJ6jTMsU4kIy/kHEnXmQMspg==
SpamDiagnosticOutput: 1:22
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3458;
 7:U0jx0yd5thWmz9+soU6yNeIRHgl2poPQ+BMWLe9JSHCwQ57X/jsZJnV26Ey+YP7rSExrqK81f8mE8SC0qvKNwlVhYUHHaZ++JudL92R5dfBQgh0+nNpfU/IVOwig3miMKu88jTtQ78ujYJ9EAVMwZOjiSrdKjvDHT4uy5fSKi3WJBfP8nc99Ja8yudpoBHrpP2Zu3AVYLWIliJT3QojhUyjZ5URpZyE+uOYbCr9jZOZxPJJF1gmJqdDOeHg7fbQX
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2018 14:30:47.8848 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e443c38-8335-4313-ac34-08d59a38ab0e
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3458
Subject: [dpdk-dev]  [PATCH v5 2/2] octeontx: move mbox to common folder
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Apr 2018 14:30:54 -0000

Move commonly used functions across mempool, event and net devices to a
common folder in drivers.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
---
 MAINTAINERS                                        |  1 +
 doc/guides/rel_notes/release_18_05.rst             |  1 +
 drivers/common/Makefile                            |  4 ++
 drivers/common/meson.build                         |  1 +
 drivers/common/octeontx/Makefile                   | 24 ++++++++
 drivers/common/octeontx/meson.build                |  5 ++
 .../{mempool => common}/octeontx/octeontx_mbox.c   | 67 +++++++++++++++++-----
 drivers/common/octeontx/octeontx_mbox.h            | 37 ++++++++++++
 .../octeontx/rte_common_octeontx_version.map       |  7 +++
 drivers/event/octeontx/Makefile                    |  4 +-
 drivers/event/octeontx/meson.build                 |  5 +-
 drivers/event/octeontx/ssovf_evdev.c               | 20 +++----
 drivers/event/octeontx/ssovf_evdev.h               | 12 ++++
 .../octeontx/ssovf_probe.c}                        | 25 +++++++-
 drivers/event/octeontx/ssovf_worker.c              |  2 +-
 drivers/mempool/octeontx/Makefile                  |  5 +-
 drivers/mempool/octeontx/meson.build               |  6 +-
 drivers/mempool/octeontx/octeontx_fpavf.c          | 14 ++---
 drivers/mempool/octeontx/octeontx_mbox.h           | 36 ------------
 drivers/mempool/octeontx/octeontx_pool_logs.h      |  9 ---
 .../octeontx/rte_mempool_octeontx_version.map      |  6 --
 drivers/net/octeontx/Makefile                      |  3 +-
 drivers/net/octeontx/base/octeontx_bgx.c           | 22 +++----
 drivers/net/octeontx/base/octeontx_pkivf.c         | 10 ++--
 drivers/net/octeontx/base/octeontx_pkivf.h         | 10 ++--
 mk/rte.app.mk                                      |  4 ++
 26 files changed, 219 insertions(+), 121 deletions(-)
 create mode 100644 drivers/common/octeontx/Makefile
 create mode 100644 drivers/common/octeontx/meson.build
 rename drivers/{mempool => common}/octeontx/octeontx_mbox.c (82%)
 create mode 100644 drivers/common/octeontx/octeontx_mbox.h
 create mode 100644 drivers/common/octeontx/rte_common_octeontx_version.map
 rename drivers/{mempool/octeontx/octeontx_ssovf.c => event/octeontx/ssovf_probe.c} (91%)
 delete mode 100644 drivers/mempool/octeontx/octeontx_mbox.h

diff --git a/MAINTAINERS b/MAINTAINERS
index d4c0cc1bc..ed3251da7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -412,6 +412,7 @@ F: doc/guides/nics/features/liquidio.ini
 Cavium OcteonTX
 M: Santosh Shukla <santosh.shukla@caviumnetworks.com>
 M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
+F: drivers/common/octeontx/
 F: drivers/mempool/octeontx/
 F: drivers/net/octeontx/
 F: doc/guides/nics/octeontx.rst
diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst
index 9cc77f893..1576fba29 100644
--- a/doc/guides/rel_notes/release_18_05.rst
+++ b/doc/guides/rel_notes/release_18_05.rst
@@ -182,6 +182,7 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_table.so.3
      librte_timer.so.1
      librte_vhost.so.3
+     librte_common_octeontx.so.1
 
 
 Tested Platforms
diff --git a/drivers/common/Makefile b/drivers/common/Makefile
index 192066307..0fd223761 100644
--- a/drivers/common/Makefile
+++ b/drivers/common/Makefile
@@ -4,4 +4,8 @@
 
 include $(RTE_SDK)/mk/rte.vars.mk
 
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL),yy)
+DIRS-y += octeontx
+endif
+
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/common/meson.build b/drivers/common/meson.build
index ab774b8ef..5f6341b8f 100644
--- a/drivers/common/meson.build
+++ b/drivers/common/meson.build
@@ -2,5 +2,6 @@
 # Copyright(c) 2018 Cavium, Inc
 
 std_deps = ['eal']
+drivers = ['octeontx']
 config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'
 driver_name_fmt = 'rte_common_@0@'
diff --git a/drivers/common/octeontx/Makefile b/drivers/common/octeontx/Makefile
new file mode 100644
index 000000000..dfdb9f196
--- /dev/null
+++ b/drivers/common/octeontx/Makefile
@@ -0,0 +1,24 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Cavium, Inc
+#
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+#
+# library name
+#
+LIB = librte_common_octeontx.a
+
+CFLAGS += $(WERROR_FLAGS)
+EXPORT_MAP := rte_common_octeontx_version.map
+
+LIBABIVER := 1
+
+#
+# all source are stored in SRCS-y
+#
+SRCS-y += octeontx_mbox.c
+
+LDLIBS += -lrte_eal
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/octeontx/meson.build b/drivers/common/octeontx/meson.build
new file mode 100644
index 000000000..203d1ef49
--- /dev/null
+++ b/drivers/common/octeontx/meson.build
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Cavium, Inc
+#
+
+sources = files('octeontx_mbox.c')
diff --git a/drivers/mempool/octeontx/octeontx_mbox.c b/drivers/common/octeontx/octeontx_mbox.c
similarity index 82%
rename from drivers/mempool/octeontx/octeontx_mbox.c
rename to drivers/common/octeontx/octeontx_mbox.c
index f8cb6a453..93e6e8579 100644
--- a/drivers/mempool/octeontx/octeontx_mbox.c
+++ b/drivers/common/octeontx/octeontx_mbox.c
@@ -11,7 +11,6 @@
 #include <rte_spinlock.h>
 
 #include "octeontx_mbox.h"
-#include "octeontx_pool_logs.h"
 
 /* Mbox operation timeout in seconds */
 #define MBOX_WAIT_TIME_SEC	3
@@ -60,6 +59,17 @@ struct mbox_ram_hdr {
 	};
 };
 
+int octeontx_logtype_mbox;
+
+RTE_INIT(otx_init_log);
+static void
+otx_init_log(void)
+{
+	octeontx_logtype_mbox = rte_log_register("pmd.octeontx.mbox");
+	if (octeontx_logtype_mbox >= 0)
+		rte_log_set_level(octeontx_logtype_mbox, RTE_LOG_NOTICE);
+}
+
 static inline void
 mbox_msgcpy(volatile uint8_t *d, volatile const uint8_t *s, uint16_t size)
 {
@@ -181,33 +191,60 @@ mbox_send(struct mbox *m, struct octeontx_mbox_hdr *hdr, const void *txmsg,
 	return res;
 }
 
-static inline int
-mbox_setup(struct mbox *m)
+int
+octeontx_mbox_set_ram_mbox_base(uint8_t *ram_mbox_base)
+{
+	struct mbox *m = &octeontx_mbox;
+
+	if (m->init_once)
+		return -EALREADY;
+
+	if (ram_mbox_base == NULL) {
+		mbox_log_err("Invalid ram_mbox_base=%p", ram_mbox_base);
+		return -EINVAL;
+	}
+
+	m->ram_mbox_base = ram_mbox_base;
+
+	if (m->reg != NULL) {
+		rte_spinlock_init(&m->lock);
+		m->init_once = 1;
+	}
+
+	return 0;
+}
+
+int
+octeontx_mbox_set_reg(uint8_t *reg)
 {
-	if (unlikely(m->init_once == 0)) {
+	struct mbox *m = &octeontx_mbox;
+
+	if (m->init_once)
+		return -EALREADY;
+
+	if (reg == NULL) {
+		mbox_log_err("Invalid reg=%p", reg);
+		return -EINVAL;
+	}
+
+	m->reg = reg;
+
+	if (m->ram_mbox_base != NULL) {
 		rte_spinlock_init(&m->lock);
-		m->ram_mbox_base = octeontx_ssovf_bar(OCTEONTX_SSO_HWS, 0, 4);
-		m->reg = octeontx_ssovf_bar(OCTEONTX_SSO_GROUP, 0, 0);
-		m->reg += SSO_VHGRP_PF_MBOX(1);
-
-		if (m->ram_mbox_base == NULL || m->reg == NULL) {
-			mbox_log_err("Invalid ram_mbox_base=%p or reg=%p",
-				m->ram_mbox_base, m->reg);
-			return -EINVAL;
-		}
 		m->init_once = 1;
 	}
+
 	return 0;
 }
 
 int
-octeontx_ssovf_mbox_send(struct octeontx_mbox_hdr *hdr, void *txdata,
+octeontx_mbox_send(struct octeontx_mbox_hdr *hdr, void *txdata,
 				 uint16_t txlen, void *rxdata, uint16_t rxlen)
 {
 	struct mbox *m = &octeontx_mbox;
 
 	RTE_BUILD_BUG_ON(sizeof(struct mbox_ram_hdr) != 8);
-	if (rte_eal_process_type() != RTE_PROC_PRIMARY || mbox_setup(m))
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return -EINVAL;
 
 	return mbox_send(m, hdr, txdata, txlen, rxdata, rxlen);
diff --git a/drivers/common/octeontx/octeontx_mbox.h b/drivers/common/octeontx/octeontx_mbox.h
new file mode 100644
index 000000000..43fbda282
--- /dev/null
+++ b/drivers/common/octeontx/octeontx_mbox.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Cavium, Inc
+ */
+
+#ifndef __OCTEONTX_MBOX_H__
+#define __OCTEONTX_MBOX_H__
+
+#include <rte_common.h>
+#include <rte_spinlock.h>
+
+#define SSOW_BAR4_LEN			(64 * 1024)
+#define SSO_VHGRP_PF_MBOX(x)		(0x200ULL | ((x) << 3))
+
+#define MBOX_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, octeontx_logtype_mbox,\
+			"%s() line %u: " fmt "\n", __func__, __LINE__, ## args)
+
+#define mbox_log_info(fmt, ...) MBOX_LOG(INFO, fmt, ##__VA_ARGS__)
+#define mbox_log_dbg(fmt, ...) MBOX_LOG(DEBUG, fmt, ##__VA_ARGS__)
+#define mbox_log_err(fmt, ...) MBOX_LOG(ERR, fmt, ##__VA_ARGS__)
+#define mbox_func_trace mbox_log_dbg
+
+extern int octeontx_logtype_mbox;
+
+struct octeontx_mbox_hdr {
+	uint16_t vfid;  /* VF index or pf resource index local to the domain */
+	uint8_t coproc; /* Coprocessor id */
+	uint8_t msg;    /* Message id */
+	uint8_t res_code; /* Functional layer response code */
+};
+
+int octeontx_mbox_set_ram_mbox_base(uint8_t *ram_mbox_base);
+int octeontx_mbox_set_reg(uint8_t *reg);
+int octeontx_mbox_send(struct octeontx_mbox_hdr *hdr,
+		void *txdata, uint16_t txlen, void *rxdata, uint16_t rxlen);
+
+#endif /* __OCTEONTX_MBOX_H__ */
diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
new file mode 100644
index 000000000..f04b3b7f8
--- /dev/null
+++ b/drivers/common/octeontx/rte_common_octeontx_version.map
@@ -0,0 +1,7 @@
+DPDK_18.05 {
+	global:
+
+	octeontx_mbox_set_ram_mbox_base;
+	octeontx_mbox_set_reg;
+	octeontx_mbox_send;
+};
diff --git a/drivers/event/octeontx/Makefile b/drivers/event/octeontx/Makefile
index 0e49efd84..6a6073b4d 100644
--- a/drivers/event/octeontx/Makefile
+++ b/drivers/event/octeontx/Makefile
@@ -10,10 +10,11 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_octeontx_ssovf.a
 
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
 CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx/
 CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx/
 
-LDLIBS += -lrte_eal -lrte_eventdev -lrte_mempool_octeontx -lrte_pmd_octeontx
+LDLIBS += -lrte_eal -lrte_eventdev -lrte_common_octeontx -lrte_pmd_octeontx
 LDLIBS += -lrte_bus_pci -lrte_mempool -lrte_mbuf -lrte_kvargs
 LDLIBS += -lrte_bus_vdev
 
@@ -27,6 +28,7 @@ LIBABIVER := 1
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_worker.c
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev.c
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev_selftest.c
+SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_probe.c
 
 ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
 CFLAGS_ssovf_worker.o += -fno-prefetch-loop-arrays
diff --git a/drivers/event/octeontx/meson.build b/drivers/event/octeontx/meson.build
index 358fc9fc9..56d4207bd 100644
--- a/drivers/event/octeontx/meson.build
+++ b/drivers/event/octeontx/meson.build
@@ -3,7 +3,8 @@
 
 sources = files('ssovf_worker.c',
 		'ssovf_evdev.c',
-		'ssovf_evdev_selftest.c'
+		'ssovf_evdev_selftest.c',
+		'ssovf_probe.c'
 )
 
-deps += ['mempool_octeontx', 'bus_vdev', 'pmd_octeontx']
+deps += ['common_octeontx', 'mempool_octeontx', 'bus_vdev', 'pmd_octeontx']
diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c
index a1086077d..649ee7979 100644
--- a/drivers/event/octeontx/ssovf_evdev.c
+++ b/drivers/event/octeontx/ssovf_evdev.c
@@ -49,7 +49,7 @@ ssovf_mbox_dev_info(struct ssovf_mbox_dev_info *info)
 	hdr.vfid = 0;
 
 	memset(info, 0, len);
-	return octeontx_ssovf_mbox_send(&hdr, NULL, 0, info, len);
+	return octeontx_mbox_send(&hdr, NULL, 0, info, len);
 }
 
 struct ssovf_mbox_getwork_wait {
@@ -69,7 +69,7 @@ ssovf_mbox_getwork_tmo_set(uint32_t timeout_ns)
 	hdr.vfid = 0;
 
 	tmo_set.wait_ns = timeout_ns;
-	ret = octeontx_ssovf_mbox_send(&hdr, &tmo_set, len, NULL, 0);
+	ret = octeontx_mbox_send(&hdr, &tmo_set, len, NULL, 0);
 	if (ret)
 		ssovf_log_err("Failed to set getwork timeout(%d)", ret);
 
@@ -99,7 +99,7 @@ ssovf_mbox_priority_set(uint8_t queue, uint8_t prio)
 	grp.affinity = 0xff;
 	grp.priority = prio / 32; /* Normalize to 0 to 7 */
 
-	ret = octeontx_ssovf_mbox_send(&hdr, &grp, len, NULL, 0);
+	ret = octeontx_mbox_send(&hdr, &grp, len, NULL, 0);
 	if (ret)
 		ssovf_log_err("Failed to set grp=%d prio=%d", queue, prio);
 
@@ -125,7 +125,7 @@ ssovf_mbox_timeout_ticks(uint64_t ns, uint64_t *tmo_ticks)
 
 	memset(&ns2iter, 0, len);
 	ns2iter.wait_ns = ns;
-	ret = octeontx_ssovf_mbox_send(&hdr, &ns2iter, len, &ns2iter, len);
+	ret = octeontx_mbox_send(&hdr, &ns2iter, len, &ns2iter, len);
 	if (ret < 0 || (ret != len)) {
 		ssovf_log_err("Failed to get tmo ticks ns=%"PRId64"", ns);
 		return -EIO;
@@ -276,7 +276,7 @@ ssovf_port_setup(struct rte_eventdev *dev, uint8_t port_id,
 		return -ENOMEM;
 	}
 
-	ws->base = octeontx_ssovf_bar(OCTEONTX_SSO_HWS, port_id, 0);
+	ws->base = ssovf_bar(OCTEONTX_SSO_HWS, port_id, 0);
 	if (ws->base == NULL) {
 		rte_free(ws);
 		ssovf_log_err("Failed to get hws base addr port=%d", port_id);
@@ -290,7 +290,7 @@ ssovf_port_setup(struct rte_eventdev *dev, uint8_t port_id,
 	ws->port = port_id;
 
 	for (q = 0; q < edev->nb_event_queues; q++) {
-		ws->grps[q] = octeontx_ssovf_bar(OCTEONTX_SSO_GROUP, q, 2);
+		ws->grps[q] = ssovf_bar(OCTEONTX_SSO_GROUP, q, 2);
 		if (ws->grps[q] == NULL) {
 			rte_free(ws);
 			ssovf_log_err("Failed to get grp%d base addr", q);
@@ -531,7 +531,7 @@ ssovf_start(struct rte_eventdev *dev)
 		/* Consume all the events through HWS0 */
 		ssows_flush_events(dev->data->ports[0], i);
 
-		base = octeontx_ssovf_bar(OCTEONTX_SSO_GROUP, i, 0);
+		base = ssovf_bar(OCTEONTX_SSO_GROUP, i, 0);
 		base += SSO_VHGRP_QCTL;
 		ssovf_write64(1, base); /* Enable SSO group */
 	}
@@ -559,7 +559,7 @@ ssovf_stop(struct rte_eventdev *dev)
 		/* Consume all the events through HWS0 */
 		ssows_flush_events(dev->data->ports[0], i);
 
-		base = octeontx_ssovf_bar(OCTEONTX_SSO_GROUP, i, 0);
+		base = ssovf_bar(OCTEONTX_SSO_GROUP, i, 0);
 		base += SSO_VHGRP_QCTL;
 		ssovf_write64(0, base); /* Disable SSO group */
 	}
@@ -621,7 +621,7 @@ static const struct rte_eventdev_ops ssovf_ops = {
 static int
 ssovf_vdev_probe(struct rte_vdev_device *vdev)
 {
-	struct octeontx_ssovf_info oinfo;
+	struct ssovf_info oinfo;
 	struct ssovf_mbox_dev_info info;
 	struct ssovf_evdev *edev;
 	struct rte_eventdev *eventdev;
@@ -679,7 +679,7 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev)
 		return 0;
 	}
 
-	ret = octeontx_ssovf_info(&oinfo);
+	ret = ssovf_info(&oinfo);
 	if (ret) {
 		ssovf_log_err("Failed to probe and validate ssovfs %d", ret);
 		goto error;
diff --git a/drivers/event/octeontx/ssovf_evdev.h b/drivers/event/octeontx/ssovf_evdev.h
index d1825b4f3..b336bd24e 100644
--- a/drivers/event/octeontx/ssovf_evdev.h
+++ b/drivers/event/octeontx/ssovf_evdev.h
@@ -119,6 +119,16 @@ do {							\
 } while (0)
 #endif
 
+struct ssovf_info {
+	uint16_t domain; /* Domain id */
+	uint8_t total_ssovfs; /* Total sso groups available in domain */
+	uint8_t total_ssowvfs;/* Total sso hws available in domain */
+};
+
+enum ssovf_type {
+	OCTEONTX_SSO_GROUP, /* SSO group vf */
+	OCTEONTX_SSO_HWS,  /* SSO hardware workslot vf */
+};
 
 struct ssovf_evdev {
 	uint8_t max_event_queues;
@@ -166,6 +176,8 @@ uint16_t ssows_deq_timeout_burst(void *port, struct rte_event ev[],
 		uint16_t nb_events, uint64_t timeout_ticks);
 void ssows_flush_events(struct ssows *ws, uint8_t queue_id);
 void ssows_reset(struct ssows *ws);
+int ssovf_info(struct ssovf_info *info);
+void *ssovf_bar(enum ssovf_type, uint8_t id, uint8_t bar);
 int test_eventdev_octeontx(void);
 
 #endif /* __SSOVF_EVDEV_H__ */
diff --git a/drivers/mempool/octeontx/octeontx_ssovf.c b/drivers/event/octeontx/ssovf_probe.c
similarity index 91%
rename from drivers/mempool/octeontx/octeontx_ssovf.c
rename to drivers/event/octeontx/ssovf_probe.c
index 97b240665..b3db596d4 100644
--- a/drivers/mempool/octeontx/octeontx_ssovf.c
+++ b/drivers/event/octeontx/ssovf_probe.c
@@ -10,7 +10,7 @@
 #include <rte_bus_pci.h>
 
 #include "octeontx_mbox.h"
-#include "octeontx_pool_logs.h"
+#include "ssovf_evdev.h"
 
 #define PCI_VENDOR_ID_CAVIUM              0x177D
 #define PCI_DEVICE_ID_OCTEONTX_SSOGRP_VF  0xA04B
@@ -52,7 +52,7 @@ static struct ssodev sdev;
 
 /* Interface functions */
 int
-octeontx_ssovf_info(struct octeontx_ssovf_info *info)
+ssovf_info(struct ssovf_info *info)
 {
 	uint8_t i;
 	uint16_t domain;
@@ -97,7 +97,7 @@ octeontx_ssovf_info(struct octeontx_ssovf_info *info)
 }
 
 void*
-octeontx_ssovf_bar(enum octeontx_ssovf_type type, uint8_t id, uint8_t bar)
+ssovf_bar(enum ssovf_type type, uint8_t id, uint8_t bar)
 {
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY ||
 			type > OCTEONTX_SSO_HWS)
@@ -142,6 +142,7 @@ ssowvf_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 	uint16_t vfid;
 	struct ssowvf_res *res;
 	struct ssowvf_identify *id;
+	uint8_t *ram_mbox_base;
 
 	RTE_SET_USED(pci_drv);
 
@@ -180,6 +181,14 @@ ssowvf_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 	res->domain = id->domain;
 
 	sdev.total_ssowvfs++;
+	if (vfid == 0) {
+		ram_mbox_base = ssovf_bar(OCTEONTX_SSO_HWS, 0, 4);
+		if (octeontx_mbox_set_ram_mbox_base(ram_mbox_base)) {
+			mbox_log_err("Invalid Failed to set ram mbox base");
+			return -EINVAL;
+		}
+	}
+
 	rte_wmb();
 	mbox_log_dbg("Domain=%d hws=%d total_ssowvfs=%d", res->domain,
 			res->vfid, sdev.total_ssowvfs);
@@ -213,6 +222,7 @@ ssovf_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 	uint16_t vfid;
 	uint8_t *idreg;
 	struct ssovf_res *res;
+	uint8_t *reg;
 
 	RTE_SET_USED(pci_drv);
 
@@ -246,6 +256,15 @@ ssovf_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 	res->domain = val & 0xffff;
 
 	sdev.total_ssovfs++;
+	if (vfid == 0) {
+		reg = ssovf_bar(OCTEONTX_SSO_GROUP, 0, 0);
+		reg += SSO_VHGRP_PF_MBOX(1);
+		if (octeontx_mbox_set_reg(reg)) {
+			mbox_log_err("Invalid Failed to set mbox_reg");
+			return -EINVAL;
+		}
+	}
+
 	rte_wmb();
 	mbox_log_dbg("Domain=%d group=%d total_ssovfs=%d", res->domain,
 			res->vfid, sdev.total_ssovfs);
diff --git a/drivers/event/octeontx/ssovf_worker.c b/drivers/event/octeontx/ssovf_worker.c
index 753c1e9f5..771e3ac6c 100644
--- a/drivers/event/octeontx/ssovf_worker.c
+++ b/drivers/event/octeontx/ssovf_worker.c
@@ -204,7 +204,7 @@ ssows_flush_events(struct ssows *ws, uint8_t queue_id)
 	uint64_t aq_cnt = 1;
 	uint64_t cq_ds_cnt = 1;
 	uint64_t enable, get_work0, get_work1;
-	uint8_t *base = octeontx_ssovf_bar(OCTEONTX_SSO_GROUP, queue_id, 0);
+	uint8_t *base = ssovf_bar(OCTEONTX_SSO_GROUP, queue_id, 0);
 
 	enable = ssovf_read64(base + SSO_VHGRP_QCTL);
 	if (!enable)
diff --git a/drivers/mempool/octeontx/Makefile b/drivers/mempool/octeontx/Makefile
index dfc373e62..a3e1dce88 100644
--- a/drivers/mempool/octeontx/Makefile
+++ b/drivers/mempool/octeontx/Makefile
@@ -10,6 +10,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_mempool_octeontx.a
 
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
 EXPORT_MAP := rte_mempool_octeontx_version.map
 
 LIBABIVER := 1
@@ -17,8 +18,6 @@ LIBABIVER := 1
 #
 # all source are stored in SRCS-y
 #
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx_ssovf.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx_mbox.c
 SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx_fpavf.c
 SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += rte_mempool_octeontx.c
 
@@ -36,6 +35,6 @@ CFLAGS_rte_mempool_octeontx.o += -Ofast
 endif
 
 LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
-LDLIBS += -lrte_bus_pci
+LDLIBS += -lrte_bus_pci -lrte_common_octeontx
 
 include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/octeontx/meson.build b/drivers/mempool/octeontx/meson.build
index 1e894a56b..3baaf7db2 100644
--- a/drivers/mempool/octeontx/meson.build
+++ b/drivers/mempool/octeontx/meson.build
@@ -1,10 +1,8 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
-sources = files('octeontx_ssovf.c',
-		'octeontx_mbox.c',
-		'octeontx_fpavf.c',
+sources = files('octeontx_fpavf.c',
 		'rte_mempool_octeontx.c'
 )
 
-deps += ['mbuf', 'bus_pci']
+deps += ['mbuf', 'bus_pci', 'common_octeontx']
diff --git a/drivers/mempool/octeontx/octeontx_fpavf.c b/drivers/mempool/octeontx/octeontx_fpavf.c
index 61c72c7c8..7aecaa85d 100644
--- a/drivers/mempool/octeontx/octeontx_fpavf.c
+++ b/drivers/mempool/octeontx/octeontx_fpavf.c
@@ -115,10 +115,6 @@ otx_pool_init_log(void)
 	octeontx_logtype_fpavf = rte_log_register("pmd.mempool.octeontx");
 	if (octeontx_logtype_fpavf >= 0)
 		rte_log_set_level(octeontx_logtype_fpavf, RTE_LOG_NOTICE);
-
-	octeontx_logtype_fpavf_mbox = rte_log_register("pmd.mempool.octeontx.mbox");
-	if (octeontx_logtype_fpavf_mbox >= 0)
-		rte_log_set_level(octeontx_logtype_fpavf_mbox, RTE_LOG_NOTICE);
 }
 
 /* lock is taken by caller */
@@ -253,7 +249,7 @@ octeontx_fpapf_pool_setup(unsigned int gpool, unsigned int buf_size,
 	cfg.pool_stack_end = phys_addr + memsz;
 	cfg.aura_cfg = (1 << 9);
 
-	ret = octeontx_ssovf_mbox_send(&hdr, &cfg,
+	ret = octeontx_mbox_send(&hdr, &cfg,
 					sizeof(struct octeontx_mbox_fpa_cfg),
 					&resp, sizeof(resp));
 	if (ret < 0) {
@@ -298,7 +294,7 @@ octeontx_fpapf_pool_destroy(unsigned int gpool_index)
 	cfg.pool_stack_end = 0;
 	cfg.aura_cfg = 0;
 
-	ret = octeontx_ssovf_mbox_send(&hdr, &cfg,
+	ret = octeontx_mbox_send(&hdr, &cfg,
 					sizeof(struct octeontx_mbox_fpa_cfg),
 					&resp, sizeof(resp));
 	if (ret < 0) {
@@ -333,7 +329,7 @@ octeontx_fpapf_aura_attach(unsigned int gpool_index)
 	memset(&cfg, 0x0, sizeof(struct octeontx_mbox_fpa_cfg));
 	cfg.aid = gpool_index; /* gpool is guara */
 
-	ret = octeontx_ssovf_mbox_send(&hdr, &cfg,
+	ret = octeontx_mbox_send(&hdr, &cfg,
 					sizeof(struct octeontx_mbox_fpa_cfg),
 					&resp, sizeof(resp));
 	if (ret < 0) {
@@ -363,7 +359,7 @@ octeontx_fpapf_aura_detach(unsigned int gpool_index)
 	hdr.coproc = FPA_COPROC;
 	hdr.msg = FPA_DETACHAURA;
 	hdr.vfid = gpool_index;
-	ret = octeontx_ssovf_mbox_send(&hdr, &cfg, sizeof(cfg), NULL, 0);
+	ret = octeontx_mbox_send(&hdr, &cfg, sizeof(cfg), NULL, 0);
 	if (ret < 0) {
 		fpavf_log_err("Couldn't detach FPA aura %d Err=%d FuncErr=%d\n",
 			      gpool_index, ret, hdr.res_code);
@@ -410,7 +406,7 @@ octeontx_fpapf_start_count(uint16_t gpool_index)
 	hdr.coproc = FPA_COPROC;
 	hdr.msg = FPA_START_COUNT;
 	hdr.vfid = gpool_index;
-	ret = octeontx_ssovf_mbox_send(&hdr, NULL, 0, NULL, 0);
+	ret = octeontx_mbox_send(&hdr, NULL, 0, NULL, 0);
 	if (ret < 0) {
 		fpavf_log_err("Could not start buffer counting for ");
 		fpavf_log_err("FPA pool %d. Err=%d. FuncErr=%d\n",
diff --git a/drivers/mempool/octeontx/octeontx_mbox.h b/drivers/mempool/octeontx/octeontx_mbox.h
deleted file mode 100644
index 1b056071a..000000000
--- a/drivers/mempool/octeontx/octeontx_mbox.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017 Cavium, Inc
- */
-
-#ifndef __OCTEONTX_MBOX_H__
-#define __OCTEONTX_MBOX_H__
-
-#include <rte_common.h>
-
-#define SSOW_BAR4_LEN			(64 * 1024)
-#define SSO_VHGRP_PF_MBOX(x)		(0x200ULL | ((x) << 3))
-
-struct octeontx_ssovf_info {
-	uint16_t domain; /* Domain id */
-	uint8_t total_ssovfs; /* Total sso groups available in domain */
-	uint8_t total_ssowvfs;/* Total sso hws available in domain */
-};
-
-enum octeontx_ssovf_type {
-	OCTEONTX_SSO_GROUP, /* SSO group vf */
-	OCTEONTX_SSO_HWS,  /* SSO hardware workslot vf */
-};
-
-struct octeontx_mbox_hdr {
-	uint16_t vfid;  /* VF index or pf resource index local to the domain */
-	uint8_t coproc; /* Coprocessor id */
-	uint8_t msg;    /* Message id */
-	uint8_t res_code; /* Functional layer response code */
-};
-
-int octeontx_ssovf_info(struct octeontx_ssovf_info *info);
-void *octeontx_ssovf_bar(enum octeontx_ssovf_type, uint8_t id, uint8_t bar);
-int octeontx_ssovf_mbox_send(struct octeontx_mbox_hdr *hdr,
-		void *txdata, uint16_t txlen, void *rxdata, uint16_t rxlen);
-
-#endif /* __OCTEONTX_MBOX_H__ */
diff --git a/drivers/mempool/octeontx/octeontx_pool_logs.h b/drivers/mempool/octeontx/octeontx_pool_logs.h
index 958651924..7b4e1b387 100644
--- a/drivers/mempool/octeontx/octeontx_pool_logs.h
+++ b/drivers/mempool/octeontx/octeontx_pool_logs.h
@@ -11,21 +11,12 @@
 	rte_log(RTE_LOG_ ## level, octeontx_logtype_fpavf,\
 			"%s() line %u: " fmt "\n", __func__, __LINE__, ## args)
 
-#define MBOX_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, octeontx_logtype_fpavf_mbox,\
-			"%s() line %u: " fmt "\n", __func__, __LINE__, ## args)
-
 #define fpavf_log_info(fmt, ...) FPAVF_LOG(INFO, fmt, ##__VA_ARGS__)
 #define fpavf_log_dbg(fmt, ...) FPAVF_LOG(DEBUG, fmt, ##__VA_ARGS__)
 #define fpavf_log_err(fmt, ...) FPAVF_LOG(ERR, fmt, ##__VA_ARGS__)
 #define fpavf_func_trace fpavf_log_dbg
 
-#define mbox_log_info(fmt, ...) MBOX_LOG(INFO, fmt, ##__VA_ARGS__)
-#define mbox_log_dbg(fmt, ...) MBOX_LOG(DEBUG, fmt, ##__VA_ARGS__)
-#define mbox_log_err(fmt, ...) MBOX_LOG(ERR, fmt, ##__VA_ARGS__)
-#define mbox_func_trace mbox_log_dbg
 
 extern int octeontx_logtype_fpavf;
-extern int octeontx_logtype_fpavf_mbox;
 
 #endif /* __OCTEONTX_POOL_LOGS_H__*/
diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
index fe8cdeca0..a75303172 100644
--- a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
+++ b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
@@ -1,9 +1,3 @@
 DPDK_17.11 {
-	global:
-
-	octeontx_ssovf_info;
-	octeontx_ssovf_bar;
-	octeontx_ssovf_mbox_send;
-
 	local: *;
 };
diff --git a/drivers/net/octeontx/Makefile b/drivers/net/octeontx/Makefile
index 3e4a10662..885f17684 100644
--- a/drivers/net/octeontx/Makefile
+++ b/drivers/net/octeontx/Makefile
@@ -10,6 +10,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_octeontx.a
 
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
 CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx/
 
 EXPORT_MAP := rte_pmd_octeontx_version.map
@@ -46,7 +47,7 @@ endif
 CFLAGS_octeontx_ethdev.o += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
+LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_common_octeontx
 LDLIBS += -lrte_mempool_octeontx
 LDLIBS += -lrte_eventdev
 LDLIBS += -lrte_bus_pci
diff --git a/drivers/net/octeontx/base/octeontx_bgx.c b/drivers/net/octeontx/base/octeontx_bgx.c
index 8576d8edb..0e2388264 100644
--- a/drivers/net/octeontx/base/octeontx_bgx.c
+++ b/drivers/net/octeontx/base/octeontx_bgx.c
@@ -19,7 +19,7 @@ octeontx_bgx_port_open(int port, octeontx_mbox_bgx_port_conf_t *conf)
 	hdr.msg = MBOX_BGX_PORT_OPEN;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &bgx_conf, len);
+	res = octeontx_mbox_send(&hdr, NULL, 0, &bgx_conf, len);
 	if (res < 0)
 		return -EACCES;
 
@@ -49,7 +49,7 @@ octeontx_bgx_port_close(int port)
 	hdr.msg = MBOX_BGX_PORT_CLOSE;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, NULL, 0);
+	res = octeontx_mbox_send(&hdr, NULL, 0, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -66,7 +66,7 @@ octeontx_bgx_port_start(int port)
 	hdr.msg = MBOX_BGX_PORT_START;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, NULL, 0);
+	res = octeontx_mbox_send(&hdr, NULL, 0, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -83,7 +83,7 @@ octeontx_bgx_port_stop(int port)
 	hdr.msg = MBOX_BGX_PORT_STOP;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, NULL, 0);
+	res = octeontx_mbox_send(&hdr, NULL, 0, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -103,7 +103,7 @@ octeontx_bgx_port_get_config(int port, octeontx_mbox_bgx_port_conf_t *conf)
 	hdr.vfid = port;
 
 	memset(&bgx_conf, 0, sizeof(octeontx_mbox_bgx_port_conf_t));
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &bgx_conf, len);
+	res = octeontx_mbox_send(&hdr, NULL, 0, &bgx_conf, len);
 	if (res < 0)
 		return -EACCES;
 
@@ -135,7 +135,7 @@ octeontx_bgx_port_status(int port, octeontx_mbox_bgx_port_status_t *stat)
 	hdr.msg = MBOX_BGX_PORT_GET_STATUS;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &bgx_stat, len);
+	res = octeontx_mbox_send(&hdr, NULL, 0, &bgx_stat, len);
 	if (res < 0)
 		return -EACCES;
 
@@ -156,7 +156,7 @@ octeontx_bgx_port_stats(int port, octeontx_mbox_bgx_port_stats_t *stats)
 	hdr.msg = MBOX_BGX_PORT_GET_STATS;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &bgx_stats, len);
+	res = octeontx_mbox_send(&hdr, NULL, 0, &bgx_stats, len);
 	if (res < 0)
 		return -EACCES;
 
@@ -181,7 +181,7 @@ octeontx_bgx_port_stats_clr(int port)
 	hdr.msg = MBOX_BGX_PORT_CLR_STATS;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, NULL, 0);
+	res = octeontx_mbox_send(&hdr, NULL, 0, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -200,7 +200,7 @@ octeontx_bgx_port_link_status(int port)
 	hdr.msg = MBOX_BGX_PORT_GET_LINK_STATUS;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &link, len);
+	res = octeontx_mbox_send(&hdr, NULL, 0, &link, len);
 	if (res < 0)
 		return -EACCES;
 
@@ -219,7 +219,7 @@ octeontx_bgx_port_promisc_set(int port, int en)
 	hdr.vfid = port;
 	prom = en ? 1 : 0;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &prom, sizeof(prom), NULL, 0);
+	res = octeontx_mbox_send(&hdr, &prom, sizeof(prom), NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -237,7 +237,7 @@ octeontx_bgx_port_mac_set(int port, uint8_t *mac_addr)
 	hdr.msg = MBOX_BGX_PORT_SET_MACADDR;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, mac_addr, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, mac_addr, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
diff --git a/drivers/net/octeontx/base/octeontx_pkivf.c b/drivers/net/octeontx/base/octeontx_pkivf.c
index 58a7f1101..1babea0e8 100644
--- a/drivers/net/octeontx/base/octeontx_pkivf.c
+++ b/drivers/net/octeontx/base/octeontx_pkivf.c
@@ -19,7 +19,7 @@ octeontx_pki_port_open(int port)
 	hdr.msg = MBOX_PKI_PORT_OPEN;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, NULL, 0);
+	res = octeontx_mbox_send(&hdr, NULL, 0, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 	return res;
@@ -38,7 +38,7 @@ octeontx_pki_port_hash_config(int port, pki_hash_cfg_t *hash_cfg)
 	hdr.msg = MBOX_PKI_PORT_HASH_CONFIG;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &h_cfg, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &h_cfg, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -58,7 +58,7 @@ octeontx_pki_port_pktbuf_config(int port, pki_pktbuf_cfg_t *buf_cfg)
 	hdr.msg = MBOX_PKI_PORT_PKTBUF_CONFIG;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &b_cfg, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &b_cfg, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 	return res;
@@ -77,7 +77,7 @@ octeontx_pki_port_create_qos(int port, pki_qos_cfg_t *qos_cfg)
 	hdr.msg = MBOX_PKI_PORT_CREATE_QOS;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &q_cfg, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &q_cfg, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -99,7 +99,7 @@ octeontx_pki_port_errchk_config(int port, pki_errchk_cfg_t *cfg)
 	hdr.msg = MBOX_PKI_PORT_ERRCHK_CONFIG;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &e_cfg, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &e_cfg, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
diff --git a/drivers/net/octeontx/base/octeontx_pkivf.h b/drivers/net/octeontx/base/octeontx_pkivf.h
index d036054ce..764aff53f 100644
--- a/drivers/net/octeontx/base/octeontx_pkivf.h
+++ b/drivers/net/octeontx/base/octeontx_pkivf.h
@@ -422,7 +422,7 @@ octeontx_pki_port_modify_qos(int port, pki_mod_qos_t *qos_cfg)
 	hdr.msg = MBOX_PKI_PORT_MODIFY_QOS;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &q_cfg, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &q_cfg, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -442,7 +442,7 @@ octeontx_pki_port_delete_qos(int port, pki_del_qos_t *qos_cfg)
 	hdr.msg = MBOX_PKI_PORT_DELETE_QOS;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &q_cfg, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &q_cfg, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -464,7 +464,7 @@ octeontx_pki_port_close(int port)
 	hdr.msg = MBOX_PKI_PORT_CLOSE;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &ptype, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &ptype, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -486,7 +486,7 @@ octeontx_pki_port_start(int port)
 	hdr.msg = MBOX_PKI_PORT_START;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &ptype, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &ptype, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
@@ -508,7 +508,7 @@ octeontx_pki_port_stop(int port)
 	hdr.msg = MBOX_PKI_PORT_STOP;
 	hdr.vfid = port;
 
-	res = octeontx_ssovf_mbox_send(&hdr, &ptype, len, NULL, 0);
+	res = octeontx_mbox_send(&hdr, &ptype, len, NULL, 0);
 	if (res < 0)
 		return -EACCES;
 
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index a9b4b0502..bf39c4ab0 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -111,6 +111,10 @@ ifeq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP),y)
 _LDLIBS-$(CONFIG_RTE_LIBRTE_KNI)            += -lrte_kni
 endif
 
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL),yy)
+_LDLIBS-y += -lrte_common_octeontx
+endif
+
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PCI_BUS)        += -lrte_bus_pci
 _LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_BUS)       += -lrte_bus_vdev
 _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS)       += -lrte_bus_dpaa
-- 
2.16.2