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 833AAA0562; Wed, 14 Apr 2021 18:19:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4CAA1161BB7; Wed, 14 Apr 2021 18:19:52 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 334524013F for ; Wed, 14 Apr 2021 18:19:51 +0200 (CEST) IronPort-SDR: TaivL/sfHcPYftR+js/qZWpR2AppkJUf7WNZW5GAboxeABQsuZsM2f1+8qiczwH5dBJuiyGgqe zqbgLvFGQUxQ== X-IronPort-AV: E=McAfee;i="6200,9189,9954"; a="174780270" X-IronPort-AV: E=Sophos;i="5.82,222,1613462400"; d="scan'208";a="174780270" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2021 09:16:53 -0700 IronPort-SDR: v2DC7vEvVN+c8A6B3npuqdqtUlbcDyTCDtlbVbB+ulJxnP6b8IVwH1Njfqh40uLi73cU8kQ2Yw 0ngJsHm1yRUw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,222,1613462400"; d="scan'208";a="461273782" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga001.jf.intel.com with ESMTP; 14 Apr 2021 09:16:52 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 14 Apr 2021 09:16:51 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 14 Apr 2021 09:16:51 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.175) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Wed, 14 Apr 2021 09:16:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gyBK3HUeeE2XT5wboA62KSRvGp2NWRTHC+u+o3T9XNhl/8AjOv7j18oF56iLWfJbH+ZbFJpWG5/Ofo9yhTmcQzAn+NJzG031Yb6oEhwhMqmy5aY7BBq3zIz0nATxB15WTvY+1mk4v6kiWghgrtPx52Nb4qGFcvcEx8c0mVLmdOQIxugskMghEMdUx2W5Z3klOpPl+L0rHGnDMPX3I99uklZGvIp07xs9w6VHwm20gVSACWy7xyJ6oDQRmSuVJ4AeEMNhfJ4hCynvHYIcZEVL3rkVTNYapQLnZEMaCKCWO+LZDD7OZyDlqx8xPtKXnQFqdaDdFXBKBLChGVPFU/eETQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a5ol25J/r44ViFIQy8AtHLs+aeN48iyHRCTZg/Ejx0s=; b=fzz9n7D8G8g6KdDE4m4VD6iRXccJaHCITRdHZTQtumnZbhPGqBeP6Jczssbuj0J2andrFLtFCe34aS7iQc7y0a1fT83zRZWx+vfs554XVgnjDJnZPxdT9w9vVQfNJeGpxKik7GvIZ3PlM+FHmzUgFNOiLp6SSoip7ecvIYNYIcaSNuHR0mVDT6yUE6+UCKS3DKHSpnKrulnIlwF6awq/hJmYdKmg5LdOhnaQCh8qz8NiPvMYJ682mSNvSD0KmEu7DoESNZ5Iy3RoIFieP+UPUWLouave+pm84lzCe/6nMRbBjjs7Dr0d+IwxfHWW6SZU8SSq5Ubr1tODNGpYvqRTmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a5ol25J/r44ViFIQy8AtHLs+aeN48iyHRCTZg/Ejx0s=; b=giTy4LNdKux9WX85LA2996KtjqO9SvxFrL7PUHN2uH+4r95jS4R110X9EBG8UvrGWonEgrDz4TyaWxfB8iA0i3K3lONMkeqL0m5O1zKuQzCn3nXAZuUO1Rw6+p7ItAOuIcOZpd+Mcns+82Iz2Dd1mo3ApW16VFQUYfphRy4utqM= Received: from DM6PR11MB2796.namprd11.prod.outlook.com (2603:10b6:5:c8::23) by DM5PR1101MB2139.namprd11.prod.outlook.com (2603:10b6:4:56::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.16; Wed, 14 Apr 2021 16:16:20 +0000 Received: from DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::d099:834d:f5ad:39c9]) by DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::d099:834d:f5ad:39c9%3]) with mapi id 15.20.4020.023; Wed, 14 Apr 2021 16:16:20 +0000 From: "Dumitrescu, Cristian" To: Li Zhang , "dekelp@nvidia.com" , "orika@nvidia.com" , "viacheslavo@nvidia.com" , "matan@nvidia.com" , "shahafs@nvidia.com" , "lironh@marvell.com" , "jerinj@marvell.com" , "Yigit, Ferruh" , "ajit.khaparde@broadcom.com" , Wisam Jaddo , "Li, Xiaoyun" , "Singh, Jasvinder" , Thomas Monjalon , Andrew Rybchenko , Ray Kinsella , Neil Horman , Jerin Jacob , Hemant Agrawal CC: "dev@dpdk.org" , "rasland@nvidia.com" , "roniba@nvidia.com" , Haifei Luo , Jiawei Wang Thread-Topic: [PATCH v6 1/2] ethdev: add pre-defined meter policy API Thread-Index: AQHXMQxTvry14A6h8k6Z0viYw0k9M6q0LSWg Date: Wed, 14 Apr 2021 16:16:19 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> <20210414085800.2051439-1-lizh@nvidia.com> <20210414085800.2051439-2-lizh@nvidia.com> In-Reply-To: <20210414085800.2051439-2-lizh@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [51.37.10.125] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d26a30c3-9570-4204-1761-08d8ff60a3af x-ms-traffictypediagnostic: DM5PR1101MB2139: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AJsEGpXV9kXjxnmIcjQbworewIzealeF4IcinqvAicb60rstvnV/DhouIDKptLSdNI8K0KsGJAIZlRlRI2JvCCIz99o9VZgvfPdunrVmHlFnKbnZu7VS9yM3tSWFjK32NxLBL0+WocyJKaX5fGY75P4FsAymetsbCJdfgQF1sHe2uiL85ASqDEPv1tVoWJI7lEj8fB8dAYaUm21FrhAPvY77g/IyEv1p8Soja1/KBKdgaw+UT5ngw0tTV7eUAbpkS+tnP+pOcsOZqlIFSR0Av++KAlZod8MKK/QC6EOfNi59YyjD6oB9JZJ2BxqfJEqwjL4hl3aI4uDqKlQvEzkBkUnEtktg/S++mX/piT+nT+Yc/vrqBVRs7jTnW7qomvMS1FuOhm4lFqmQaQxIcVebvqVle2lfMC2MCeX0eTJZw392LEq0Mw/g6e85yE91gkgZhn6XHSKWF8tVH2HxjbqcrST3n3YlFFXhwzQQ81ADo2TuROjZNnY9OlrZwzQbakJIocxEW8F37x6nuXrrq9L3ZESHMiyUuHfJhGWQFEyh5+GZTbTL9gXcqZ75HyW6GcgDv5i4jafIxisgF0g4Am1FHuqAn4ZNMOhvkYZVVRk41YYI0qCc5W2MyYSx/R8wNlqvX2prP86OHsplpo8zyp2VWQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB2796.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(396003)(39860400002)(366004)(346002)(83380400001)(64756008)(86362001)(110136005)(9686003)(186003)(38100700002)(4326008)(2906002)(71200400001)(76116006)(66476007)(26005)(66446008)(478600001)(54906003)(66556008)(122000001)(921005)(5660300002)(55016002)(7696005)(316002)(8936002)(8676002)(66946007)(33656002)(7416002)(52536014)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NWJzTk1zemVUdU0xVUVOR3hFUmNTd3hDMlpjb0dsSG5IWnRvdXlsZjEwcHFY?= =?utf-8?B?OW5GaTB4cmlpOHNoSTlHMlgyUStsTHNPZ2FaNjhpWngrVS9GNmFaT0g1a3F2?= =?utf-8?B?QmZwMEgrM3JjOFFkMlRNck5UeElkbFh4OTZrUDVueXU2eGQ4SHpzbzJBeGlD?= =?utf-8?B?UWFHRHBBMTRLU3BSMGs2cFNraG1pME5lbHRXaXNqQ21mQXRJSXNQTE83R2xt?= =?utf-8?B?bDRZUUQ4L1IrUXV5eFAzOEE1c1orSWM0UG5WZnVwRUR0VEszUWQvZUpUdUlV?= =?utf-8?B?OHcrcnl6bm1qL2VyaEE4MmZ2T2dJUVQvUHBvMVdCZ215elpTcGhmeDZFRFBT?= =?utf-8?B?amlQUFcvRnU1bjFrVjBmYndtSG4vNmZxcXJZYUI2TzFYN2V2U3ZxVmNQazFZ?= =?utf-8?B?cEw0TUtmdW1VNVl0U2E3WkpodEZJcFhVZW9iTFlja0ZhNzNsZHAzR0N6VjVw?= =?utf-8?B?RXpCN2Fvc0hmWHJiWTdlaDBrSS9ZQncrTVZxM2ZiYkVrUTFtUVQxQmpyeUhW?= =?utf-8?B?OG1IVnA1cXZVTWtSTVkreWI0ekY3TGxzRll1MHJBNnlTejJqWk5Rc1NMZE9B?= =?utf-8?B?NGlLMzJ3b080NWFWcmp3V3NQM24ydVNXanhvNXZrZURpNmc1czVDbGFkMEcy?= =?utf-8?B?Njg1NmJxRCtOcXpFRU5tTUR4emN3MWV2Tkc3eFYvSnRXdXI1UzJGWEVtdCt4?= =?utf-8?B?Q1IvRXJIMGJydmx5dEdScHU5NnhNZitWeVlJeUc3WmRsdEtVekw4WFZudnc0?= =?utf-8?B?bnpDKzJxcWtOLzluTzdzckRoY2hlUTJjUlc0K0JuT3hrNTJNRnBBMyt4UWZY?= =?utf-8?B?WXRGaTVodG4ramhCR3FKSFRJTDJmSDBhMURNcXAzSFhOZEIxbDg1R3dCU1Fs?= =?utf-8?B?OEttYjlxRHhBS3BvWXVFRFVmby9XVkFNemQ5Wm1nUnZPZytrdC9udS8ranZF?= =?utf-8?B?czlXVksvZm1tYmtRdnN2UCt2bURJMzVxd2ZOK2RxV1VVb2hsRDZYWjF1QTFv?= =?utf-8?B?RzRQcFVBb1dxTFhHNE1Fb0Y3RFl6a0gvMVhZdy9qeUR4V2R5Ty91MkZVUDNN?= =?utf-8?B?RDlhMjkxTlJzZmF4WGx0ajZtOXdLSERhN3dzbXVGK1dCZDV3aTZwZ1hhRXdD?= =?utf-8?B?VU5vQ0R3cjdaWDhBZ2dOYTlkdm1ldmVBRUtQYWh3M3Eyd0JtSlc5b0o4TFdq?= =?utf-8?B?aG5JSVErWXNpY09lSUZpRmpuTG9PRjlmT2tFaEtra3RzdzZwTVVzL1JIT2JC?= =?utf-8?B?VVVJaXlScnQyL2ZEOGJ2UTNtZGlsYXdTNTdpNjd5LzcrU3BNcjByd0dwSUFz?= =?utf-8?B?Q2pTazJQNUdrVkdoQWNhd2p4T2xTclRoREowcUtsTkRLck5pV2E5UFhMNnVz?= =?utf-8?B?VWZ1RGNEeXFuUGVPNzJkSXpiUmcwZUt0eUxVWllHN1BoTmY3SFhUcmF5NFVN?= =?utf-8?B?SlJrbFZGT3ZURUI2TmFFNHZ5NVRINGZqSDZaaXlXalhacys3eDArQmFRZkdO?= =?utf-8?B?VzVyZEhHVXdFT3VSV1c2SjAxWFp0dTlDbU5qMXZJb0dLWFl0UFBkd2VEelI3?= =?utf-8?B?Q0VJTmVZTFZuaWFoWjliWGtDcTB6N2pDM2tGZExTVi9STktlK2pERmZFTUsv?= =?utf-8?B?K25rTSsxdERpUmhOdk8zbmNRMHFuODhPSWU2RUtsTFpvYnZEbnc1VTM5QUp0?= =?utf-8?B?akpDbXZNbkl1QzVqcEUwa3B5TktLYVVNVm1VdUhxUk9pUVhVSTlKQmdhbXh6?= =?utf-8?Q?hW+Wb7ABB3o57ueRVs=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2796.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d26a30c3-9570-4204-1761-08d8ff60a3af X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2021 16:16:19.9980 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ksPDbtewRFMYvPXOrKxkPgeEs8L1lvu93dPsKBk+h6eVBW0RdkZ/0QVi9Sejse1L57cnDy2cDQbe+GDbJvLhJQgLMkmJij2dneuMet+LefM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1101MB2139 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v6 1/2] ethdev: add pre-defined meter policy API 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 Sender: "dev" SGkgTGksDQoNCkZvbGxvd2luZyB0aGUgQVBJIGNoYW5nZXMsIHRoZXJlIGFyZSBsb3RzIG9mIGNo YW5nZXMgaW4gdGhlIGRyaXZlcnMsIGFzIGV4cGVjdGVkLCBzbyB3ZSdsbCBoYXZlIHRvIHRha2Ug dGhlIG5lY2Vzc2FyeSB0aW1lIHRvIHJldmlldyB0aGVtLg0KDQpIZXJlIGFyZSBqdXN0IGEgZmV3 IGNvbW1lbnRzIGJlbG93LCBwbGVhc2UgZXhwZWN0IG1vcmUgZHVyaW5nIHRoZSBuZXh0IGZldyBk YXlzLg0KDQo8c25pcD4NCg0KPiArDQo+ICsvKiBNVFIgbWV0ZXIgcG9saWN5IGFkZCAqLw0KPiAr c3RhdGljIGludA0KPiArcG1kX210cl9tZXRlcl9wb2xpY3lfYWRkKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LA0KPiArCXVpbnQzMl90IG1ldGVyX3BvbGljeV9pZCwNCj4gKwlzdHJ1Y3QgcnRlX210 cl9tZXRlcl9wb2xpY3lfcGFyYW1zICpwb2xpY3ksDQo+ICsJc3RydWN0IHJ0ZV9tdHJfZXJyb3Ig KmVycm9yKQ0KPiArew0KPiArCXN0cnVjdCBwbWRfaW50ZXJuYWxzICpwID0gZGV2LT5kYXRhLT5k ZXZfcHJpdmF0ZTsNCj4gKwlzdHJ1Y3Qgc29mdG5pY19tdHJfbWV0ZXJfcG9saWN5X2xpc3QgKm1w bCA9ICZwLQ0KPiA+bXRyLm1ldGVyX3BvbGljaWVzOw0KPiArCXN0cnVjdCBzb2Z0bmljX210cl9t ZXRlcl9wb2xpY3kgKm1wOw0KPiArCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdDsN Cj4gKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21ldGVyX2NvbG9yICpyZWNvbG9yOw0K PiArCXVpbnQzMl90IGk7DQo+ICsNCj4gKwkvKiBNZXRlciBwb2xpY3kgSUQgbXVzdCBiZSB2YWxp ZC4gKi8NCj4gKwlpZiAobWV0ZXJfcG9saWN5X2lkID09IFVJTlQzMl9NQVgpDQo+ICsJCXJldHVy biAtcnRlX210cl9lcnJvcl9zZXQoZXJyb3IsDQo+ICsJCQlFSU5WQUwsDQo+ICsJCQlSVEVfTVRS X0VSUk9SX1RZUEVfTUVURVJfUE9MSUNZX0lELA0KPiArCQkJTlVMTCwNCj4gKwkJCSJNZXRlciBw b2xpY3kgaWQgbm90IHZhbGlkIik7DQoNClRoaXMgaXMgb2J2aW91c2x5IG5vdCBjb3JyZWN0LCB3 ZSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIG1ldGVyX3BvbGljeV9pZCBwcm92aWRlZCBieSB0 aGUgdXNlciBpcyBhbHJlYWR5IGluIHVzZSAoYnkgYSBwb2xpY3kgcHJldmlvdXNseSBhZGRlZCkg b3Igbm90LiBZb3UgY2FuIGRvIHRoaXMgd2l0aCB0aGUgcG9saWN5IGZpbmQgZnVuY3Rpb24gdGhh dCB5b3UgaGF2ZSBhbHJlYWR5IGltcGxlbWVudGVkLg0KDQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBp IDwgUlRFX0NPTE9SUzsgaSsrKSB7DQo+ICsJCWFjdCA9IHBvbGljeS0+YWN0aW9uc1tpXTsNCj4g KwkJaWYgKGFjdCAmJiBhY3QtPnR5cGUgIT0NCj4gUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVJf Q09MT1IgJiYNCj4gKwkJCWFjdC0+dHlwZSAhPSBSVEVfRkxPV19BQ1RJT05fVFlQRV9EUk9QKQ0K PiArCQkJcmV0dXJuIC1ydGVfbXRyX2Vycm9yX3NldChlcnJvciwNCj4gKwkJCQlFSU5WQUwsDQo+ ICsJCQkJUlRFX01UUl9FUlJPUl9UWVBFX01FVEVSX1BPTElDWSwNCj4gKwkJCQlOVUxMLA0KPiAr CQkJCSJBY3Rpb24gaW52YWxpZCIpOw0KPiArCX0NCg0KVGhpcyBjaGVjayBkb2VzIG5vdCBsb29r IHJpZ2h0IGVpdGhlcjogb2J2aW91c2x5IHdlIGNhbm5vdCBhY2NlcHQgYSBudWxsIGFjdGlvbiBs aXN0IGZvciBhbnkgY29sb3IsIHBsdXMgdGhlIGFjdGlvbiBsaXN0IHNob3VsZCBjb250YWluIG9u bHkgdGhvc2UgYWN0aW9uIHR5cGVzIHdlIHN1cHBvcnQgKFJURV9GTE9XX0FDVElPTl9UWVBFX01F VEVSX0NPTE9SIG9yIFJURV9GTE9XX0FDVElPTl9UWVBFX0RST1ApLg0KDQpJIGFncmVlLCBmaXN0 IHlvdSBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIGxpbmtlZCBsaXN0IG9mIHBvbGljeSBhY3Rpb25z IGZvciBlYWNoIGNvbG9yIGlzIG5vbi1OVUxMLCB0aGVuIHlvdSBuZWVkIHRvIHRyYXZlcnNlIGl0 IHVudGlsIHlvdSBtZWV0IHRoZSBFTkQgYWN0aW9uLCBza2lwIGFueSBQQUQgYWN0aW9ucywgdGhl biBjaGVjayB0aGF0IGV4YWN0bHkgb25lIChhbmQgb25lIG9ubHkpIG9mIE1FVEVSX0NPTE9SIG9y IERST1AgZXhpc3QsIGJ1dCBub3QgYm90aCBhdCB0aGUgc2FtZSB0aW1lLCBhbmQgYWxzbyB3ZSBk b24ndCBoYXZlIHRoZSBzYW1lIGFjdGlvbiBzaG93aW5nIHVwIG11bHRpcGxlIHRpbWVzLiBNYWtl cyBzZW5zZT8NCg0KUmVnYXJkcywNCkNyaXN0aWFuDQo=