Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3360784ybt; Tue, 30 Jun 2020 00:20:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHab75wL0TRrz7PIAyZhhg+tlvWPXNKTC+FyvsSwR4dy+g9MGVd1LKbIQnyBjRlv2ud6L3 X-Received: by 2002:a50:cdc6:: with SMTP id h6mr21125009edj.111.1593501638068; Tue, 30 Jun 2020 00:20:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593501638; cv=none; d=google.com; s=arc-20160816; b=Ek0IfjxLy4jkx5ZrI12vahI2Q2AStlEu2/eKU/imapirxZeYOXeT6gj+fwd3Om0VlV wvAZS03oUjb5bBUzj17q/+DQZTHL4YQmduHqJgUiWOdeOUvUWh/lynlPvm6FzWBQa5YF kOwyh06ymVyU16OjUMRnxviuxTu/qnZ1aatMB0mJBmKh9rbOhIs9RZlNr9ircrlhHgMF jXaB9SUzbcTZnbWt5ceru5mS0CD0d1xjGX+J22FB5Mgm7jpa6SsoEXnv2eB/YBDwvLSw QHFmtTc9N39F3RoHolFfxidEIBgxUHBOYePxoUe8vdtZ4zn3ke8oYmAgD0d2VCj0+UaD nYyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:ironport-sdr:ironport-sdr; bh=uPFLeVochP87nYQsz21jn4c1xM9/j/D+2LcYU4JoUzc=; b=NJfoCXCob+g/TEzoMgwMAqSw8cTjmV0ixkiFLU+U2XKeM5+ksco1Ld90HeUYx3ekOU YOr4ONO0iwUbxNBNj9kxjxgoTChAFtupFIkaTSOIpQZ05Nv0dlyDMWohNQAbvxjvbX5Z ZdgzAjPkwjjYP3AgkeFZeZHvJIWPwJ8XeALPirfSs7TrHcVWFsYVMm7yxS1U0KRm8t07 /+DsbX74wlwAyPWaIt4ysFjLEdI4I/OFnWXO2fLVm3D3uA1W/6DlIrzLw4G1bEYoi6Hp /7NgdXrsJQ+/3u/4M47138cxflgvYzbjGOYF6H9VDDLYCqVomrnmVU0SScKmot2IZtTq jAXQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q6si1320732eja.511.2020.06.30.00.19.58; Tue, 30 Jun 2020 00:20:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730740AbgF3HTi (ORCPT + 99 others); Tue, 30 Jun 2020 03:19:38 -0400 Received: from mga18.intel.com ([134.134.136.126]:22972 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730637AbgF3HTh (ORCPT ); Tue, 30 Jun 2020 03:19:37 -0400 IronPort-SDR: 5gcKX30Q+hk/CVkuRMCQC9lDCEUB5CfJCuiBI7inioF+ztTewR/J8+ego2ZshPkNpPRyxnqapO yddVRCkvSL3w== X-IronPort-AV: E=McAfee;i="6000,8403,9666"; a="133613599" X-IronPort-AV: E=Sophos;i="5.75,296,1589266800"; d="scan'208";a="133613599" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2020 00:19:37 -0700 IronPort-SDR: sQXfukDtX9jhiRNIQGjTCRjbIJnsAItUEe3TDvSB0a2DBp3vvSJ1SPABCpSkl2jVJuzff8YIpI SmdTrgGZnnsQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,296,1589266800"; d="scan'208";a="355698459" Received: from sdkini-mobl1.amr.corp.intel.com (HELO ingas-nuc1.sea.intel.com) ([10.254.110.226]) by orsmga001.jf.intel.com with ESMTP; 30 Jun 2020 00:19:37 -0700 From: Inga Stotland To: linux-bluetooth@vger.kernel.org Cc: brian.gix@intel.com, michal.lowas-rzechonek@silvair.com, Inga Stotland Subject: [PATCH BlueZ 0/4] Add options to Models and VendorModels Date: Tue, 30 Jun 2020 00:19:32 -0700 Message-Id: <20200630071936.40437-1-inga.stotland@intel.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org If a model does not support either subscription mechanism, Config Server is supposed to return "Not a Subscribe Model" if a Config Client sends a subscription add/overwrite message. Similarly, if a model does not support publication, "Invalid Publish Parameters" should be returned in response to Publication Set message. Since config server is running even when an app is not attached, the only way to collect these model capabilities is on Attach, Join, Create, Import methods when the object manager collects app info. To address this issue, signatures for properties "Models" and "VendorModels" on Element interface change to include "options" dictionary: Models: signature change "aq" -> "a(qa{sv})" VendorModels: signature change "a(qq)" -> "a(qqa{sv})" The defined keywords for the options dictionary are: "Publish" - indicates whether the model supports publication mechanism. If not present, publication is enabled. "Subscribe" - indicates whether the model supports subscription mechanism. If not present, subscriptions are enabled. Inga Stotland (4): doc/mesh-api: Add dictionary to model properties mesh: Check app model settings of pub/sub support tools/mesh-cfgclient: Add options to "Models" property test/test-mesh: Add options to "Models" property doc/mesh-api.txt | 40 ++++++++-- mesh/mesh-config-json.c | 72 ++++++++++++++++- mesh/mesh-config.h | 8 ++ mesh/model.c | 87 +++++++++++++++++---- mesh/model.h | 6 ++ mesh/node.c | 168 ++++++++++++++++++++++++++++++++-------- test/test-mesh | 21 ++--- tools/mesh-cfgclient.c | 25 ++++-- 8 files changed, 359 insertions(+), 68 deletions(-) -- 2.26.2