MANUFACTURER USAGE DESCRIPTIONS FOR LIGHTWEIGHT MACHINE TO MACHINE PROTOCOLS
20230124811 · 2023-04-20
Inventors
Cpc classification
Y02D30/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
A method by an IoT device includes hosting a MUD file and local memory of the IoT device, and exposing content of the MUD file from the local memory of IoT device is a CoAP resource. A related method by a MUD manager includes receiving using CoAP from an IoT device a URL advertising location of a MUD file stored in local memory of the IoT device, and getting content of the MUD file from the local memory of the IoT device using CoAP. A related method by a LwM2M server includes receiving a registration command from a LwM2M client for an IoT device using CoAP. determining a policy to be used to control communications with the IoT device, determining content of a MUD file based on the policy that is determined, and providing the content of the MUD file to the LwM2M client for the IoT device using CoAP.
Claims
1. A method by an Internet of Things, IoT, device, the method comprising: hosting a Manufacturer Usage Description, MUD, file in local memory of the IoT device; obtaining, by a Lightweight Machine-to-Machine, LwM2M, client for and in the IoT device, a MUD object from a LwM2M server; and storing the MUD object within the MUD file in the local memory of the IoT device, and exposing content of the MUD file from the local memory of the IoT device as a Constrained Application Protocol, CoAP, resource.
2. The method of claim 1, wherein exposing content of the MUD file from the local memory of the IoT device as the CoAP resource, comprises: providing content of the MUD file from the local memory of the IoT device to a MUD manager using CoAP to create an access policy which controls communications with the IoT device through at least one of a network router and a network switch.
3. The method of claim 2, wherein providing content of the MUD file from the local memory of the IoT device to the MUD manager using CoAP, comprises: providing a to-device-policy to the MUD manager which controls communications to the IoT device; and providing a from-device-policy to the MUD manager which controls communications from the IoT device.
4. The method of claim 2, wherein providing content of the MUD file from the local memory of the IoT device to the MUD manager using CoAP, comprises: receiving, by a CoAP server on the IoT device, a CoAP GET command from the MUD manager; and providing, by the CoAP server on the IoT device responsive to the CoAP GET command, the content of the MUD file to the MUD manager.
5. The method of claim 2, wherein: the content of the MUD file provided to the MUD manager comprises a YANG-based JSON object describing network behavior for the IoT device.
6. (canceled)
7. The method of claim 1, wherein the obtaining, by the LwM2M client for the IoT device, the MUD object from the LwM2M server, comprises: receiving resources defined in a LwM2M resource structure from the LwM2M server; accessing a mapping between the resources and MUD objects; and generating or updating the MUD file in the local memory of the IoT device based on the MUD objects mapped to the resources received from the LwM2M server.
8. The method of claim 1, further comprising: responsive to generating or updating of the MUD file in the local memory of the IoT device, providing content of the MUD file that is generated or updated to the MUD manager using CoAP to create another access policy which controls communications with the IoT device through the least one of the network router and the network switch.
9.-18. (canceled)
19. A method by a Lightweight Machine-to-Machine, LwM2M, server, the method comprising: receiving a registration command from a LwM2M client for an Internet of Things, IoT, device using Constrained Application Protocol, CoAP; determining a policy to be used to control communications with the IoT device; determining content of a MUD file based on the policy that is determined; and providing the content of the MUD file to the LwM2M client for the IoT device using CoAP.
20. The method of claim 19, further comprising: receiving a command from the LwM2M client for the IoT device to register a URL for a MUD file stored in local memory of the IoT device; storing the URL as a MUD based resource type in a LwM2M object structure maintained by the LwM2M server; and responding to a query from an electronic device identifying the MUD based resource type by providing the URL to the electronic device.
21. The method of claim 20, wherein the command is received from the LwM2M client for the IoT device using CoAP.
22. The method of claim 20, wherein the URL is received in a POST CoAP command from the LwM2M client for the IoT device.
23. The method of claim 19, wherein the providing of the content of the MUD file to the LwM2M client for the IoT device using CoAP, comprises: providing a MUD object using a POST CoAP command or a PUT CoAP command.
24. The method of claim 23, wherein the providing of the MUD object using the POST CoAP command or the PUT CoAP command, comprises: accessing resources defined in a LwM2M resource structure of the LwM2M server; accessing a mapping between the resources and MUD objects; and generating or updating the MUD file in the local memory of the IoT device based on the MUD objects mapped to the resources.
25. (canceled)
26. (canceled)
27. (canceled)
28. An Internet of Things, IoT, device comprising: at least one processor; and at least one memory coupled to the at least one processor and comprising computer readable program code that when executed by the at least one processor causes the at least one processor to perform operations configured to: host a Manufacturer Usage Description, MUD, file in local memory of the IoT device; obtain, by a Lightweight Machine-to-Machine, LwM2M, client for and in the IoT device, a MUD object from a LwM2M server; store the MUD object within the MUD file in the local memory of the IoT device, and expose content of the MUD file from the local memory of the IoT device as a Constrained Application Protocol, CoAP, resource.
29. The IoT device of claim 28, wherein to expose content of the MUD file from the local memory of the IoT device as the CoAP resource, comprises to: provide content of the MUD file from the local memory of the IoT device to a MUD manager using CoAP to create an access policy which controls communications with the IoT device through at least one of a network router and a network switch.
30. (canceled)
31. (canceled)
32. A Lightweight Machine-to-Machine, LwM2M, server comprising: at least one processor; and at least one memory coupled to the at least one processor and comprising computer readable program code that when executed by the at least one processor causes the at least one processor to perform operations configured to: receive a registration command from a LwM2M client for an Internet of Things, IoT, device using Constrained Application Protocol, CoAP; determine a policy to be used to control communications with the IoT device; determine content of a MUD file based on the policy that is determined; and provide the content of the MUD file to the LwM2M client for the IoT device using CoAP.
33. (canceled)
34. (canceled)
35. The IoT device of claim 28, wherein the computer readable program code when executed by the at least one processor further causes the at least one processor to perform the provide content of the MUD file from the local memory of the IoT device to the MUD manager using CoAP, by operations to: provide a to-device-policy to the MUD manager which controls communications to the IoT device; and provide a from-device-policy to the MUD manager which controls communications from the IoT device.
36. The IoT device of claim 28, wherein the computer readable program code when executed by the at least one processor further causes the at least one processor to perform the provide content of the MUD file from the local memory of the IoT device to the MUD manager using CoAP, by operations to: receive, by a CoAP server on the IoT device, a CoAP GET command from the MUD manager; and provide, by the CoAP server on the IoT device responsive to the CoAP GET command, the content of the MUD file to the MUD manager.
37. The IoT device of claim 28, wherein the computer readable program code when executed by the at least one processor further causes the at least one processor to obtain, by the LwM2M client for the IoT device, the MUD object from the LwM2M server, by operations to: receive resources defined in a LwM2M resource structure from the LwM2M server; access a mapping between the resources and MUD objects; and generate or update the MUD file in the local memory of the IoT device based on the MUD objects mapped to the resources received from the LwM2M server.
38. The IoT device of claim 28, wherein the computer readable program code when executed by the at least one processor further causes the at least one processor to respond to generating or updating of the MUD file in the local memory of the IoT device, by providing content of the MUD file that is generated or updated to the MUD manager using CoAP to create another access policy which controls communications with the IoT device through the least one of the network router and the network switch.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0037] Aspects of the present disclosure are illustrated by way of example and are not limited by the accompanying drawings. In the drawings:
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
DETAILED DESCRIPTION
[0047] Inventive concepts will now be described more fully hereinafter with reference to the accompanying drawings, in which examples of embodiments of inventive concepts are shown. Inventive concepts may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of various present inventive concepts to those skilled in the art. It should also be noted that these embodiments are not mutually exclusive. Components from one embodiment may be tacitly assumed to be present/used in another embodiment.
[0048] Present MUD specifications have essentially no disclosure of Constrained Application Protocol (CoAP) nor Lightweight Machine to Machine Protocol (LwM2M).
[0049] The Constrained Application Protocol (CoAP) is a generic Representational State Transfer (REST) application Protocol for constrained devices, it is defined in RFC7252. CoAP is designed to be used over User Datagram Protocol (UDP) (RFC0768) over the Internet. CoAP variants like Lightweight Machine to Machine Protocol (LwM2M) are becoming increasingly popular in order to manage devices in a RESTful fashion.
[0050] As explained above,
[0052] The MUD URL is emitted using DHCP, LLDP or through 802.1X, then a network switch or network router will send the URI to some IoT Controlling Entity. That Entity will fetch the MUD file from a MUD file server through the Internet over HTTP [SECCONS].
[0053] This is not an ideal mechanism for CoAP endpoints. As shown above, MUDs have not been specified as exposed CoAP resources but rather as a URL to an external MUD file server shared over DHCP; exposing a CoAP “/mud” resource would be a more operationally efficient and robust solution than the current approach.
[0054] A CoAP device could expose both the URL and the MUD File that it is itself hosting.
[0055]
[0056] Although the MUD Manager 120 is illustrated as being separate from the IoT device 100 and the network router 110 or network switch 110, functionality of the MUD Manager 120 may be at least partially implemented in another component of the MUD architecture, such as in the network router 110 or network switch 110, in the IoT device 100, and/or elsewhere. Similarly, although the LwM2M server 130 is illustrated as being separate from the RD server 150, functionality of the LwM2M server 130 and RD server 150 may be at least partially integrated into a common element.
[0057] The illustrated MUD architecture can be more a operationally efficient and effective design that may enable integration with the IoT network directly, allowing other IoT devices to also directly consume MUDs. This architecture may also allow easier integration with management protocols like LwM2M and provide resiliency in case Internet connectivity is not available in the constrained network.
[0058] Various embodiments of the present disclosure are directed to a MUD file being signed by the manufacturer, hosted in local memory of an IoT device, and exposed as a CoAP resource to enable such MUD usage on a managed network context.
[0059] Various embodiments are directed to mechanisms for devices to use MUDs in CoAP (Discovery, Reading, Verifying . . . ) and for integrating with other systems like the MUD manager (provisioning, update) and the manufacturer (signing) as well as other use cases with Software Updates.
[0060] In some embodiments, a CoAP server is configured to expose a new resource under, e.g., /mud. Making it available for CoAP Discovery so that other network elements can make use of it.
[0061] A MUD Object for LwM2M can be created using the LwM2M/IPSO model. In LwM2M a MUD Manager that processes the MUD can create an access policy with the information the IoT device is providing. Trust is ensured by way of certificates. The IoT device can also use the MUD to advertise the required Access Policies (see “from-device”). Various embodiments disclosed herein are directed to operations enabling devices to join the network and be configured to have a MUD and, if configured, can fetch the right policy and expose it.
[0062] Advantages provided by some or all of these embodiments may include any one or more of: [0063] 1. Enable reuse of MUD files, LwM2M and CoAP in accordance with operations herein; [0064] 2. Allow for devices to expose the MUD, thereby eliminating or reducing the need for a MUD File Server; [0065] 3. Open the MUD functionality to the CoAP ecosystem, thereby making it valuable for managed endpoints and for device to device interaction; [0066] 4. Allow MUD usage even without Internet connectivity; and [0067] 5. Use DHCP renew lease as an operation to advertise MUD changes.
[0068] Two different approaches are described below for the use of MUDs in CoAP.
[0069] A first approach is directed to Self-Hosted MUDs by way of CoAP. An IoT device contains a MUD file in local memory of the device and exposes its own MUD file over CoAP so that other network elements can make use of it. This approach may eliminate or reduce the need for use of a MUD file server. The IoT device exposes one or both of the MUD URL and the MUD file, and a Manager that processes the MUD can create an access policy with the information the device is providing. Trust may be operationally ensured by way of certificates used in communications. Moreover, as explained above, regarding
[0070] A second approach is directed to a management system providing a MUD configuration using LwM2M, consuming the MUD during registration, and configuring the IoT device accordingly. The system can have: a CoAP URL; the description hosted as a Resource; and discoverability using CoAP Discovery mechanisms.
[0071] The first approach directed to self-hosted MUDs in initially described below with reference to
[0072] With reference to
TABLE-US-00001 { “ietf-mud:mud”: { “mud-version”: 1, “mud-url”: “coaps://[IPv6]/mud”, “last-update”: “2019-10-11T11:02:20+04:00”, “cache-validity”: 48, “extensions”: [ “ietf-mud-1wm2m-example” ], “ietf-mud-1wm2m-example:is-1wm2m-required”: “true”, “is-supported”: true, “systeminfo”: “An example thermometer”, “from-device-policy”: { “access-lists”: { “access-list”: [ { “ietf-mud:direction-initiated”: “from-device”, “name”: “mud-87236” } ] } }, “to-device-policy”: { “access-lists”: { “access-list”: [ { “name”: “1wm2m-manager” } ] } } }
[0073] The MUD can be signed with the Public Key of the Manufacturer for verification purposes.
[0074] When using CoRE Link Format, a CoAP client can send a GET request to a CoAP server for /.well-known/core and get in return a list of hypermedia links to other resources hosted in that server. Among those, it will get the path to the MUD file, for example “/mud”. The CoAP server may, for example, be part of the Resource Directory (RD) server 150 and/or the LwM2M server 130 shown in
[0075] A managed network approach with MUDs and discovering MUDs is now described.
[0076] Powered-on IoT devices should register a MUD file with the RD server and also use the RD server as a MUD file URL repository. The MUD file URLs become discoverable to other electronic device using known RD Lookup steps, such as by querying the RD server. These operations can provide a powerful discovery mechanism, such as the following example:
TABLE-US-00002 REQ: POST coap://rd.device.is/rd?ep=node1 ct:40 </mud>;ct=41;rt=“mud” </sensors/light>;ct=41;rt=“light-lux”;if=“sensor”
[0077] A new resource type (rt) can be created in order to enable MUDs to be used in the RD ecosystem. For example a request query for “rt=mud”:
[0078] REQ: GET coap://rd.company.com/rd-lookup/res?rt=mud
[0079] When querying for that resource type (rt=mud), the RD will return a list of links that host the mud resource, such as the example below:
TABLE-US-00003 RES: 2.05 Content <coap://[2001:db8:3::123]:61616/box>;rt=“mud”; anchor=“coap://[2001:db8:3::123]:61616” <coap://[2001:db8:3::124]/switch>;rt=“mud”; anchor=“coap://[2001:db8:3::124]”
[0080] Multicast may also be used to discover all Manufacturer descriptions in a subnet.
[0081] The second approach is directed to managed network with MUDs and LwM2M usage is described below with reference to
[0082] Referring to
[0083] To use MUDs in LwM2M various embodiments map MUDs to the LwM2M Object structure. An example mapping between a MUD and a L2M2M Object structure is provided below.
TABLE-US-00004 OBJECT: MUD +--ro MUD* [instance_number] +--rw instance_number uint16 +--rw mud_version uint16 +--rw mud-signature? string +--rw last-update string +--rw cache-validity uint16 +--rw manufacturer string +--rw model string +--rw from-device-policy olink +--rw controller string +--rw name string +--rw ace string +--rw to-device-policy olink [...] rw configuration data (read and write) ro state data (read only) x action
[0084] The above mapped Objects are a non-limiting example of a minimal MUD configuration in LwM2M for sake of brevity. The term “ro” refers to read-only allowed objects and the term “rw” refers to read-write allowed objects. In LwM2M the Controller can be a “urn:ietf:params:mud:coap” (the urn should be registered) and the two policy resources “from-device-policy” and “to-device-policy” point to two other objects that define the connectivity characteristics of the device. For simplicity, the embodiment adds three resources “controller”, “name” and “ace” (access control entry) consecutively.
[0085] Referring to the example embodiments shown in
[0086] The content of the MUD file may be created during the Bootstrapping process by the Bootstrap Server or it may be predefined in memory by the manufacturer, e.g., at the factory. Either way during the registration the IoT device 100 using a MUD file also registers the MUD object. The IoT device 100 can perform a simple registration as specified in the Lightweight Machine to Machine Technical Specification: Core by the Open Mobile Alliance, OMA-TS-LightweightM2M_Core-V1_1-20180710-A, Version 1.1-2018-07.10.
[0087] In
[0088] A “GET” command provides a well-known core, and content of the MUD file is provided. The IoT device 100 returns a “2.05 Content” response with the contents of “/mud”, which in this case is the object “MUD”. Example code may be provided as follows:
TABLE-US-00005 Interaction: LS -> LC Request: GET coap://[IPv6]/.well-known/core (step 316) Response: 2.05 Content (step 318) </mud>;rt=“oma.1wm2m”;ct=110
[0089] The LwM2M Server 130 performs a GET operation on that particular object.
[0090] The IoT device 100 returns a “2.05 Content” response which may include the following SenML:
TABLE-US-00006 Int: LS -> LC Req: GET coap://[IPv6]/mud (step 322) Res: 2.05 Content {“bn”:“/XXXX/0/”, “e”:[ {“n”:“0”,“v”:“1”}, {“n”:“1”,“sv”:ManufacturerXYZ}, {“n”:“2”,“sv”:“2019-10-11T11:02:20+04:00”}, {“n”:“3”,“v”:“99”}, {“n”:“4”,“sv”:“ model-116”}, {“n”:“5”,“sv”:“X:X”}, {“n”:“6”,“sv”:“urn:ietf:params:mud:coap”}, {“n”:“7”,“sv”:“IP policy”}, {“n”:“8”,“sv”:“match-on-ipv4”}, {“n”:“9”,“sv”:“X:X”}] }
[0091] The MUD Manager 120 queries its internal database with policies it has applied to that IoT device 100 or creates a new one. The policy is sent as a serialized MUD that edits the existing mud. If no MUD is present the MUD Manager 120 will use the existing Device Object to provide a default MUD on the IoT device 100.
[0092] The MUD Manager 120 performs a POST or PATCH operation to modify content of the MUD file. For example, the SenML below changes the endpoint to advertise the use of ipv4 only to ipv6.
[0093] The IoT device 100 responds with a “2.04 Changed” response to indicate a successful change of the parameter:
TABLE-US-00007 Int: LS -> LC Req: PATCH coap://[IPv6]/mud {“bn”:“/XXXX/0/”, “e”:[{“n”:“6”,“v”:“match-on-ipv6”}] } Res: 2.04 Changed
[0094] The IoT device 100 (endpoint) will update the “last-update” field at this point (the “n”:“2”) value and advertise the MUD file with a DHCP renew lease (new) and the new MUD URL. Otherwise the network could periodically update it according to a cache validity (value of 99) period.
[0095] Architecture network elements, such as a network router 110, will apply the MUD process and forward the URL to the MUD Manager 120.
[0096] The MUD Manager 120 will then query the IoT device 100 (endpoint) within the local network, which will provide the content of the current MUD file.
[0097] MUD file exposure to other network elements, i.e., other electronic devices 160 on the network, can be performed in the same fashion as the RFC specifies, and as explained above for discovering MUDs embodiments in operations 310. New mechanisms include IP multicast may be used with these embodiments.
[0098] In
[0099] Accordingly, various embodiments provide mechanism to configure content of MUD files for use in CoAP, which may be particularly beneficial for device environments without Internet connectivity and may operate better with the CoAP Architecture. These embodiments may improve current MUD usage by taking advantage of CoAP Servers, e.g., the LwM2M EP, which are running on constrained devices. These embodiments may introduce the usage in LwM2M, as well as the provisioning and MUD-signing mechanism.
[0100] Example components of an electronic node 400, which may be a IoT Device, a MUD Manger, a LwM2M Server, and/or a RD server described herein and shown in one or more of
[0101]
[0102] The network interface 420 may be configured to communicate through a wired interface, e.g., Ethernet, and/or wireless interface, e.g., wireless transceiver, according to one or more proprietary protocols and/or industry standardized protocols, e.g., WiFi, Zigbee, Bluetooth, 3GPP 4G, 5G (NR), etc. The processor 400 may include one or more data processing circuits, such as a general purpose and/or special purpose processor (e.g., microprocessor and/or digital signal processor) that may be collocated or distributed across one or more networks. The processor 400 is configured to execute program code 412 in the memory 410, described below as a computer readable medium, to perform some or all of the operations and methods that are described above for one or more of the embodiments of an IoT electronic device, such as regarding one or more of the embodiments described herein, such as in the context of any one or more of
[0103] The above and more general operations and methods that can be performed by the IoT device 100, the MUD manager 120, the L2M2M server 130, and the RD server 150, are now explained with reference to
[0104]
[0105] Referring initially to
[0106] In a further embodiment, the operation to expose 502 content of the MUD file from the local memory of the IoT device 100 as the CoAP resource, can include providing 504 content of the MUD file from the local memory of the IoT device 100 to the MUD manager 120 using CoAP to create an access policy which controls communications with the IoT device 100 through at least one of a network router 110 and a network switch 110.
[0107] In a further embodiment, the operation to provide 504 content of the MUD file from the local memory of the IoT device 100 to the MUD manager 120 using CoAP, can include providing a to-device-policy to the MUD manager which controls communications to the IoT device, and providing a from-device-policy to the MUD manager which controls communications from the IoT device.
[0108] In a further embodiment, the operation to provide 504 content of the MUD file from the local memory of the IoT device 100 to the MUD manager 120 using CoAP, can include: receiving, by a CoAP server on the IoT device 100, a CoAP GET command from the MUD manager 120; and providing, by the CoAP server on the IoT device 100 responsive to the CoAP GET command, the content of the MUD file to the MUD manager 120.
[0109] The content of the MUD file provided 504 to the MUD manager 120 may include a YANG-based JSON object describing network behavior for the IoT device 100.
[0110] Referring to the further embodiment of
[0111] In a further embodiment, the operation to obtain 600, by the LwM2M client for the IoT device 100, the MUD object from the LwM2M server 130, can include: receiving resources defined in a LwM2M resource structure from the LwM2M server 130; accessing a mapping between the resources and MUD objects; and generating or updating the MUD file in the local memory of the IoT device 100 based on the MUD objects mapped to the resources received from the LwM2M server 130.
[0112] In a further embodiment, the IoT device 100 is further configured to respond to the generating or updating of the MUD file in the local memory of the IoT device 100, by providing content of the MUD file that is generated or updated to the MUD manager 120 using CoAP to create another access policy which controls communications with the IoT device 100 through the least one of the network router 110 and the network switch 110.
[0113] Various corresponding operations are to be performed by the MUD manager 120 are now described in the context of
[0114] Referring initially to
[0115] The operation to get 702 content of the MUD file from the local memory of the IoT device 100 using CoAP, can include sending 704 a CoAP GET command to a CoAP server on the IoT device 100.
[0116] Referring to the further embodiment of
[0117] The operation to create 800 the access policy can include creating a to-device-policy that controls communications to the IoT device 100 through the at least one of the network router 110 and the network switch 110, and creating a from-device-policy that controls communications from the IoT device 100 through the at least one of the network router 110 and the network switch 110.
[0118] The MUD manager 120 can be further configured to provide 802 the access policy for the IoT device 100 to the network router 110 and the network switch 110.
[0119] The MUD manager 120 can be further configured to determine whether a certificate contained in the content of the MUD file is verified, and to only operate to create 800 the access policy to control communications with the IoT device 100 if the certificate is determined to be verified.
[0120] Various corresponding operations are to be performed by the LwM2M server 130 are now described in the context of
[0121] Referring initially to
[0122] Referring to the further embodiment of
[0123] The operation to provide 906 the content of the MUD file to the LwM2M client for the IoT device 100 using CoAP, may include providing a MUD object using a POST CoAP command or a PUT CoAP command The operation to provide the MUD object using the POST CoAP command or the PUT CoAP command, may include: accessing resources defined in a LwM2M resource structure of the LwM2M server 130; accessing a mapping between the resources and MUD objects; and generating or updating the MUD file in the local memory of the IoT device 100 based on the MUD objects mapped to the resources.
[0124] Various corresponding operations are to be performed by the RD server 150 are now described in the context of
[0125] In the above-description of various embodiments of the present disclosure, it is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense expressly so defined herein.
[0126] The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various aspects of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
[0127] The terminology used herein is for the purpose of describing particular aspects only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Like reference numbers signify like elements throughout the description of the figures.
[0128] The corresponding structures, materials, acts, and equivalents of any means or step plus function elements in the claims below are intended to include any disclosed structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. The aspects of the disclosure herein were chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure with various modifications as are suited to the particular use contemplated.
[0129] Various abbreviations used herein include the following:
TABLE-US-00008 Abbreviation Explanation CoAP Constrained Application Protocol, an IETF standard for a REST-based application layer protocol for the Internet of Things LwM2M Lightweight Machine-to-Machine, an OMA standard IETF Internet Engineering Task Force, a standards development organization IoT Internet of Things MUD Manufacturer Usage Description OMA Open Mobile Alliance, a standards development organization RD Resource Directory rt Resource Type URL Uniform Resource Locator