From patchwork Sat Mar 3 02:59:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 880983 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cavium.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="R8oM59rD"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ztW9845lSz9s4c for ; Sat, 3 Mar 2018 13:59:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965234AbeCCC7V (ORCPT ); Fri, 2 Mar 2018 21:59:21 -0500 Received: from mail-bl2nam02on0054.outbound.protection.outlook.com ([104.47.38.54]:57495 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965220AbeCCC7T (ORCPT ); Fri, 2 Mar 2018 21:59:19 -0500 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=pAp45T/1Q/5Jhqo+q8AmIBL3NvR+pKosj7kUlFWZH5I=; b=R8oM59rD7bVBM+moM6UxEXt7HBR3yy+hrBjaIHnUmwGhh7t82nstMi+P6V5jNjL+20NiWK4texbXqO/hywD4ZDOhBYwe7ZCvejn/PyGBDZ5HJoNcMsrNrk9hkfJokK9z7XHyR20Kux1JlYKGabJaWHq3cis6imPrP7FEFZY0Cq0= Received: from localhost (50.233.148.156) by BN7PR07MB4209.namprd07.prod.outlook.com (2603:10b6:406:b2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.548.13; Sat, 3 Mar 2018 02:59:17 +0000 Date: Fri, 2 Mar 2018 18:59:10 -0800 From: Felix Manlunas To: davem@davemloft.net Cc: netdev@vger.kernel.org, raghu.vatsavayi@cavium.com, derek.chickles@cavium.com, satananda.burla@cavium.com, intiyaz.basha@cavium.com Subject: [PATCH net-next] liquidio: Added ndo_get_phys_port_id support Message-ID: <20180303025910.GA26255@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: DM5PR2201CA0003.namprd22.prod.outlook.com (2603:10b6:4:14::13) To BN7PR07MB4209.namprd07.prod.outlook.com (2603:10b6:406:b2::11) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a2ef0c63-1d48-4b0c-4495-08d580b2c10e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:BN7PR07MB4209; X-Microsoft-Exchange-Diagnostics: 1; BN7PR07MB4209; 3:qcfkYaTIrrzc+I6T8ef8e/bEw9CDvrKELIvqVT676xUqc6J0YYOX6OvA10535ecPY3he/qU955M8HuXFK8sEaZhxq5wxAQSeCnRif5KNCG4D6B0UWXjKGKNOb5HmetTNes6Tx3L+fDgsTgpzhJHGG7ff7kTMZTULfsYb1bKaXgttSNyog8JM/5wI7xhr9SZ/EsWehdIGi8ZD05QG1psYi699nwQsdiyTGT/FVnVpnWlsU6ZT9ubHg/wNfpusukA4; 25:p3Wf8hfwcmsydCscn0DvNLbEE3X36T49Y0DTWNPDDdUywrvyXRi4SOdGpxZX/ciSDjZpUyuuxoVsNdJ2k5DxX4mVk9b9ocvmoBIapZloJlYkTbvHFpcTMF3AUcdZ8ti/HMeAYNlNBjT8F+TMRFqO595o5lALEWH/n6rNJcyHTGsm0rg7trvswkHyKmiHtEN/yItBwhKD9pT6U9uksFs8IRrl5sRr0Bwei6MSi2A6KdpTJzfMeaakZvv/VyBIjgzK2uhd+XDFpSuDgtRHdGPlpRW0BCUOynrfG5FL8MJuTvHXoChoPSh3YRIvVluPDPma+Mo8iocibuqqbd8wogOYbQ==; 31:NIWMiFyX9gkonfpGaFujwm9Kkwjh6333W5e8u6aGW7VT1MwKKSOtDV20XcfJq+cCwI9Hkg7Q9mB9edLJX0KK3h62DdSq+HAKq9XlF9Kd0mQdTTk13gz3vGEqBq7NbLjtQ+cdp9hy4quUCsjISixAk3SstTj9JrrOH9rDdbRRsCBpmFs/oOcLdVJKg5uTdkAGCKdPaJA0Ti80r8xx7Y9KXf23SPa2UDcH1q+drPjvbK0= X-MS-TrafficTypeDiagnostic: BN7PR07MB4209: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; X-Microsoft-Exchange-Diagnostics: 1; BN7PR07MB4209; 20:BOEeHCsZ34Eo7RHHvoxhiEEMiCYARyuFW8sl/Wy3p6W40VOYD3GECKbgaPx2+MhICheC1CGAPFvAnjY9d/TU05GQecUqhlWObhW53UZnU7ZXnLQuNY9WcR4GViMjHMIpDkgVuL6jBWVrkSzC2WuZAeDGwRZRPvLPmFt5gvOUmR3ceJRvP6Npzu9ecVkp7GJ0csuvqFVkPtCotH+Y0Hu5snVDedwAak6ja/Fh96Koen1qdSExwrVjT+Kikn61oskYSDDbdj9oOwn8H1P0Kaqf+YeTwKXukFyuFEJd0mFmKpRusStopFBBW7rqXtg06B8fJer9kv+DOoBjtPK4Jc0qekSUPUAqPuB51GW3wsOw7Xz/Q+/lVMPbOEXQrDkaffUUgpXJ0nINrGbWjyeMI/0/BlYnlX/GqhxnPE/6GdQWIMDl/8eHYQ1mfj5numfmRivlWWdgsifBw6+cyefx0ivAcIkv4TnroPaAeeJaTM1OpWGwPSg1o71ChXWsW3yHBOYs; 4:CQrfddXW1OyY8353FIPbi4vdK0XaVe8WwSNUcNuL+VelkzUziVvymRZ7FKrYg1WSOwICEv2H33wgUbeIhpJ5JGf3DCJkmI8UXpN6urY2/NcuEJxpaC4l0M4Drya6+F5p7UR2XvaPhQWQxcGmlcYdCB+a/T8H43M0ZE9Cl62/twJ+FmjACeFjxcL7YjKGQzQWKH1gBl6ZUvKB65lkjrqfT0lNuh3/Hd0RsK9ih9oN01Nf175B06I9lZHpVN7jJ4VdFIs1OXSQ08gmK/rA9b3QTw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(3002001)(6041288)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:BN7PR07MB4209; BCL:0; PCL:0; RULEID:; SRVR:BN7PR07MB4209; X-Forefront-PRVS: 0600F93FE1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(189003)(199004)(105586002)(2351001)(2361001)(68736007)(7736002)(6486002)(5660300001)(72206003)(106356001)(86362001)(16526019)(97736004)(25786009)(386003)(305945005)(52116002)(6496006)(186003)(8676002)(50466002)(316002)(8936002)(76506005)(6916009)(6666003)(33656002)(26005)(47776003)(66066001)(81166006)(81156014)(2906002)(3846002)(107886003)(6116002)(478600001)(23726003)(1076002)(4326008)(53936002)(58126008)(16586007)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN7PR07MB4209; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BN7PR07MB4209; 23:/zC3iDQZ1OcOg7RzuNSfWTqFdm3MPD8WWB5dm2Wqja9WcArXp5Ac5u1RUOY9V9DV7U2QsnVFXFK1sNrKm/eG0U6sO+gTUZAOn3fFdMVBj2R8b4IVTow8V8zjxLYrsDOPS8ZELf4CWvC5t7n2X6r4e+PPG1fgjxbhd6VjNhJhaWm5hMCnlrBPwpO74vNPUwnGevYwFZlrXGQNTXCqwsZtc4eBMHB5aL3xdipQKwaVt/G4ONPzTNTkKTXjbekfXJxkTSCYsF66plFFrjKIngKnBi3Ws5qZvccZZX5ila0xugSc4HAGewSxBIEU0G1pGENNswZxzD8ht4NMABCjsQyhZnYOGayp9Ieju8RQathuKJAz6E3GwmeJZ0x+QTTMXlsvAWDy0rf8lEhNg3P3oYya6oveeAZg8Glm06+WVa2s4qc8Th48b4oN26xbTmG/+pigEHXYvHTASwiaQpTIRPSic/EUMKwzPBRCrWxUbtthZCLA+T5aB0I+3yjhZOxbwX3grC6Zr0UxIm2TZVTVz4t3OHdJG798rLHczICmQ2JLGDy+wBmlBg3ua2ypASjDVeUeLRP/8U8yDjz2YK5eeAv/kaaeFcQTsqeQx/e5CVplX1sr8CvX//xeEyANG/6ETkJox3V24JLS44LE/jK4RW55xt22m3RbxzFkHzR8Yo8YkmJT7nWt8R7RrVzEl/YkReE/fiQYbWnX7HBnJW6sqPmavvec+bHn5L7/CrGapnB/kjhoR0mm5C2rYMGJN8z1M/Dp5DQlJdMq/EKRbOxP3HoDPwpVbIdgUjs36Bpn67q2lURLE6+dj9yGSerOF6bQQ/tjkgWP3UHNieh6xvIhGmOottA2Q9wI9CmdS4nUNnZxumX6xWPGi/snq5YIKzhuZlJ+KMALh/sPJDImfHBuiPqfWkaZoOmq1SlOb8gDQ8A+MowH33wMJBR+NpEGYLEjfuBEwe5Et6g6lxipnRb6V/gdg+IThaI0iVGdSYU4WtF2ap4Roou+e34dQpoMbfcF4GTqeH806naeZrZXyFfUK+nRocsqzqmK9Pza7D58o2djzScktvNi0QPTyr66l2zhy1MpylNRC3DmsdSRdF/k8VPrJ/rvX0M7ukLt3BVLnpu3ccvewFGve/7tQLKGt4fl+qxMwRe/fpDd/MfRoL8jGlXPl0jURm0QwNb8wdPT1KR+Zu8= X-Microsoft-Exchange-Diagnostics: 1; BN7PR07MB4209; 6:zqCfzOcHNycGUgjGTZBsBRWr0Yhx568yiOvl+8ioQSYrC0X8ObUbCYTOqG1lcfm9t55w/ulPx4rbgHsQVJ/BmN8y4f+DFyKmACwpAgBT2RDvlzTV/vlCNHnczhClezBzglSAvhW46xjeaDP8RuaTVv1IBKrZeG4FD6DUXKJ0TWIIl7lSgW8ceDhGos66J33sy0CW9uJ+BWle6K9YgLJgY5tiOLahy+j1Z59dldy8wVXp7S9P9oEuqP3NsUNVT/awsafIJ6X2O4dQscIpzZMPaMIIrzJG8/mvIPaTfmzr12sXtF7D4dF+3C/MA6lT0uceZCwwd7+VJUR3o9eHW7ZVBMt+6iIBkRsPKVvxC703bXY=; 5:nczvVAw0idxNxQ1xoIi73q5n+/bhGG7y+SmaSCyQk2IFqdW0sK6r7C1RHE/VgZsaiAcyb+IzQn5yv5rKD5MRqXcJcc+HPfuRprgetTVmDz3ZsBOhgDRSwucyk5l+ECsYdT+J7EYDWxYTevQs7AxMDNDE8vTyCBjq1hiUQdN9NY0=; 24:PvO7iU2bfjDnNSEPy7iqdgtnpRejsKniHbO2kcRlcAJPhp1BHfQMxlQCs9DZ28Lv5Idnms8iYDv04Mc/Rdrc0Dm9B+wStegjy/QkxGKDrDM=; 7:OpZshsKeCCxPFiw/UAY5QfTgLQfjyt8rH/N/sDhwisLxtOxoCP7JIjVdHyMgq9A6CJS2FRDNizN2TUT/sbyiaLXG/Md/ICf2GWtRAwAtlrFTuvnermRWBYdqmK9TE47sbSlwUSZYoAejjY0aHK+3T7YH1Xkf95IU/uzeUtOL1Y/0iE+6QGIgHW2oO88MQaNJPeJOya30z7sEUdQV+gZgR13ofO+81k0PJa/XWCV79V90s+U96h6aIFhqM5KjKnIT SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2018 02:59:17.1921 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2ef0c63-1d48-4b0c-4495-08d580b2c10e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR07MB4209 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Intiyaz Basha Added support to the ndo_get_phys_port_id() callback to provide port specific unique id to the netdev layer. Port id needs to be unique across different liquidio devices in the system. So used MAC address for port_id. Usage: cat /sys/class/net//phys_port_id Signed-off-by: Intiyaz Basha Acked-by: Derek Chickles Signed-off-by: Felix Manlunas --- drivers/net/ethernet/cavium/liquidio/lio_core.c | 13 +++++++++++++ drivers/net/ethernet/cavium/liquidio/lio_main.c | 1 + drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 1 + drivers/net/ethernet/cavium/liquidio/octeon_network.h | 3 +++ 4 files changed, 18 insertions(+) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c index 8b1ee83..8bb4cfb 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_core.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c @@ -1081,3 +1081,16 @@ int octeon_setup_interrupt(struct octeon_device *oct, u32 num_ioqs) } return 0; } + +int liquidio_get_phys_port_id(struct net_device *netdev, + struct netdev_phys_item_id *ppid) +{ + struct lio *lio = GET_LIO(netdev); + u8 addr[ETH_ALEN]; + + u64_to_ether_addr(be64_to_cpu(lio->linfo.hw_addr), addr); + ppid->id_len = ETH_ALEN; + memcpy(ppid->id, addr, ppid->id_len); + + return 0; +} diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index a5eecd8..e376b9d 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -3424,6 +3424,7 @@ static const struct net_device_ops lionetdevops = { .ndo_set_vf_vlan = liquidio_set_vf_vlan, .ndo_get_vf_config = liquidio_get_vf_config, .ndo_set_vf_link_state = liquidio_set_vf_link_state, + .ndo_get_phys_port_id = liquidio_get_phys_port_id, }; /** \brief Entry point for the liquidio module diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c index fd70a48..dbff977 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c @@ -2244,6 +2244,7 @@ static const struct net_device_ops lionetdevops = { .ndo_set_features = liquidio_set_features, .ndo_udp_tunnel_add = liquidio_add_vxlan_port, .ndo_udp_tunnel_del = liquidio_del_vxlan_port, + .ndo_get_phys_port_id = liquidio_get_phys_port_id, }; static int lio_nic_info(struct octeon_recv_info *recv_info, void *buf) diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_network.h b/drivers/net/ethernet/cavium/liquidio/octeon_network.h index f2d1a07..ea7536f 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_network.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_network.h @@ -184,6 +184,9 @@ int octeon_setup_interrupt(struct octeon_device *oct, u32 num_ioqs); */ void liquidio_set_ethtool_ops(struct net_device *netdev); +int liquidio_get_phys_port_id(struct net_device *netdev, + struct netdev_phys_item_id *ppid); + #define SKB_ADJ_MASK 0x3F #define SKB_ADJ (SKB_ADJ_MASK + 1)