The present invention relates to methods for configuring a machine-to-machine (M2M) device. The present invention also relates to a server and an M2M device, and to a computer program configured to carry out methods for configuring an M2M device.
The internet of things (IoT) is a network of physical smart objects such as sensors that exchange information with other sensors, devices or servers, without human interaction. As such, these devices are sometimes referred to as machine-to-machine (M2M) devices. Some examples of services in IoT include built-in sensors in automobiles or homes, heart monitoring implants or smart thermostats systems. Many new protocols have been developed after the introduction of Internet of Things (IoT) including Lightweight Machine to Machine protocol (LWM2M) and constrained application protocol (CoAP), both of which are light and compact application protocols.
M2M devices may communicate with other M2M devices and systems using wireless or wired technology. Regarding wireless technologies, M2M devices may support short range communication technologies such as Bluetooth, Wi-Fi and Zigbee. They may also support long range technologies such as radio communication, however this is more power consuming than short range communication.
There is a desire to improve the configurability of M2M devices so that they can more easily be adapted to changes in a network, for example if the M2M device is communicating with a malfunctioning or misbehaving server, or if there is a change in ownership.
When an M2M device is first switched on it contacts a server for a bootstrapping service. The bootstrapping service loads and then executes other programs in the M2M device or it redirects the M2M device to another server which configures the M2M device to carry out the desired function. Information on how to connect to the bootstrapping service is typically configured in the M2M device at manufacturing stage. This information is typically a bootstrapping service address for contacting a server running the bootstrapping service. A problem arises when an alternative location for the bootstrapping service is required, for example, the server running the bootstrapping service may be malfunctioning or misbehaving, or perhaps the M2M device has changed owner and is to connect to a different network. In order to change the bootstrapping service the M2M device needs to be updated with a new bootstrapping service address. This can be cumbersome and/or time consuming for an M2M device user. Furthermore, M2M devices typically lack a user interface and so reconfiguring the bootstrapping service address may be difficult.
Therefore, it is an aim of the present invention to provide methods, apparatus and computer readable media which at least partially address one or more of the challenges discussed above.
According to an aspect of the invention, there is provided a gateway for configuring a device management bootstrapping service address in a machine-to-machine, M2M, device, the gateway being configured to send a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD. The gateway is also configured to receive a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway, and the gateway is further configured to receive a device management bootstrapping service address from a node.
The node may be the DHCPv6 server, such that the gateway is configured to receive the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD.
In one embodiment, the gateway is further configured to send to an M2M device an IPv6 address, based on the prefix, together with the device management bootstrapping service address.
The gateway may be configured to receive a request from an M2M device for an IPv6 address, to configure an IPv6 address based on the prefix received from the DHCPv6 server and assign said IPv6 address to the M2M device, and then send it to the M2M device together with the device management bootstrapping service address.
In one embodiment, the gateway is further configured to send the IPv6 address assigned to the M2M device to a server to which the device management bootstrapping service address leads.
In another embodiment, the gateway may be configured with a list of IP addresses of M2M devices to which it has sent the device management bootstrapping service address, and upon receiving a request for this list from a server of the device management bootstrapping service address, the gateway is configured to send said list to said server.
The gateway may be configured with a light weight machine to machine, LWM2M, protocol object comprising the list of IP address of M2M devices to which it has sent the device management bootstrapping service address.
In one embodiment, the gateway is configured to send the device management bootstrapping service address together with a server certificate to the M2M device.
In another embodiment, the request received from the M2M device and the response sent to the M2M device may be according to the DHCPv6 protocol.
In another embodiment, the request for IA_PD sent to the DHCPv6 server and the response received from the DHCPv6 server may be according to the DHCPv6 protocol.
The gateway may be a capillary gateway of a capillary network comprising M2M devices.
According to another aspect of the invention, there is provided an apparatus for configuring a device management bootstrapping service address in a machine-to-machine, M2M, device, the apparatus comprising a processor and a memory, said memory containing instructions that when executed cause the apparatus to send a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD, and receive a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway, and receive a device management bootstrapping service address from a node. The node may be the DHCPv6 server.
According to another aspect of the invention, there is provided a machine-to-machine, M2M, device suitable for being configured with a device management bootstrapping service address, the M2M device being configured to send a request for an Internet Protocol version six, IPv6, address to a gateway and receive a response from the gateway. The response comprises an IPv6 address assigned to the M2M device and a device management bootstrapping service address.
In one embodiment, the request comprises a dynamic host configuration protocol for Internet protocol version six, DHCPv6, request message.
In another embodiment, the M2M device belongs to a capillary network and is configured to send the request for an IPv6 address to a capillary gateway.
In yet another embodiment, the M2M device comprises a light weight machine to machine protocol, LWM2M, client.
According to yet another aspect of the invention, there is provided a machine-to-machine, M2M, device suitable for being configured with a device management bootstrapping service address, the M2M device comprising a processor and a memory, said memory containing instructions that when executed cause the M2M device to send a request for an Internet Protocol version six, IPv6, address to a gateway, and to receive a response from the gateway, the response comprising an IPv6 address assigned to the M2M device and a device management bootstrapping service address.
According to a further aspect of the invention, there is provided a Dynamic Host Configuration Protocol for Internet Protocol Version Six, DHCPv6, Server configured to receive a request for Identity Association Prefix Delegation, IA_PD, and in response send a device management bootstrapping service address to a client so that said client can be configured with said address.
According to another aspect of the invention, there is provided a Dynamic Host Configuration Protocol for Internet Protocol Version Six, DHCPv6, Server for distributing a device management bootstrapping service address to a client, the server comprising a processor and a memory, said memory containing instructions that when executed cause the server to receive a request for Identity Association Prefix Delegation, IA_PD, and in response send the device management bootstrapping service address to the client so that said client can be configured with said address.
According to yet another aspect of the invention, there is provided a bootstrapping server comprising a bootstrapping function for a machine to machine, M2M, device, the server being configured to receive a notification of at least one M2M device having received a device management bootstrapping service address.
In one embodiment, the server is configured to receive a registration request from a gateway, and register said gateway in order to receive said notification from said gateway.
According to another aspect of the invention, there is provided a server comprising a processor and a memory, said memory containing instructions that when executed cause the server to receive a notification of at least one M2M device having received a device management bootstrapping service address.
According to yet another aspect of the invention, there is provided a system for configuring a machine-to-machine, M2M, device, the system comprising a gateway configured to send a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD. The gateway is further configured to receive a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway. The gateway is further configured to receive a device management bootstrapping service address from a node. The system further comprises an M2M device configured to request an IPv6 address based on the prefix and receiving the IPv6 address from the gateway together with the device management bootstrapping service address.
In one embodiment, the node is the DHCPv6 server, and the gateway is configured to receive the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD.
According to another aspect of the invention, there is provided a method performed by a gateway for configuring a device management bootstrapping service address in a machine-to-machine, M2M, device, the method comprising sending a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD, and receiving a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway, and receiving a device management bootstrapping service address from a node.
In one embodiment, the node is the DHCPv6 server, and the gateway receives the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD.
According to yet another aspect of the invention, there is provided a method performed by a machine-to-machine, M2M, device suitable for being configured with a device management bootstrapping service address, the method comprising sending a request for an Internet Protocol version six, IPv6, address to a gateway, receiving a response from the gateway, the response comprising an IPv6 address assigned to the M2M device and an address for the device management bootstrapping service.
According to a further aspect of the invention, there is provided a method performed by Dynamic Host Configuration Protocol for Internet Protocol Version Six, DHCPv6, Server, the method comprising the DHCPv6 server receiving a request for Identity Association Prefix Delegation, IA_PD, and in response sending a device management bootstrapping service address to a client so that said client can be configured with said address.
Accord to yet a further aspect of the invention, there is provided a method performed by a server comprising a bootstrapping function for a machine to machine, M2M, device, the method comprising receiving a notification of at least one M2M device having received a device management bootstrapping service address.
In one embodiment, the method further comprises receiving a registration request from a gateway, and registering said gateway in order to receive said notification from said gateway.
According to another aspect of the invention, there is provided a method of operation of a system for configuring a machine-to-machine, M2M, device, the method comprising a gateway sending a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD. The method comprises the gateway receiving a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway. The method further comprises the gateway receiving a device management bootstrapping service address from a node. The method also comprises an M2M device requesting an IPv6 address based on the prefix and receiving the IPv6 address from the gateway together with the device management bootstrapping service address.
In one embodiment, the node is the DHCPv6 server, and the method further comprises the gateway receiving the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD.
According to yet another aspect of the invention, there is provided a computer program which, when run on a computer, causes the computer to carry out a method as described above.
According to a further aspect of the invention, there is provided a computer program product comprising computer readable storage medium and a computer program as described above stored on the computer readable storage medium.
The device management bootstrapping service address, is an address of a server providing a bootstrapping function. The address may be in the format of a uniform resource identifier URI) or another suitable format.
For a better understanding of the present invention, and to show more clearly how it may be carried into effect, reference will now be made, by way of example, to the following drawings in which:
Aspects of the present invention provide apparatus and methods for configuring a device management bootstrapping service address in a machine-to-machine (M2M) device. The invention employs the dynamic host configuration protocol for internet protocol version 6 (DHVPv6) to send the device management bootstrapping service address to the M2M device.
The term M2M device used herein should be understood to be any device which is configured or configurable to communicate with another device, server or system without human interaction. The M2M device may for example be a sensor for light, pressure, temperature, vibration or actuators. The M2M device may form part of an apparatus such as a vehicle, an appliance (including a fridge, freezer or central heating), or a user equipment (such as a mobile phone, laptop, smart phone, wireless communication device).
As mentioned above, aspects of the invention make use of DHVPv6 in order to configure a device management bootstrapping service address in the M2M device. DHCPv6 is an internet application protocol that uses a client/server model to communicate between hosts. DHCPv6 executes over the UDP transport protocol. It provides a mechanism to auto-configure inter-link Host IPv6 addresses, provides parameters to auto-register and receives Domain Name System Host names and provides a mechanism to specify additional configuration options in the protocol.
An extension of DHCPv6 is DHCPv6 Prefix Delegation (DHCPv6 PD) as specified in RFC33633 of the Internet Engineering Task Force (IETF). DHCPv6 PD is aimed at assigning complete subnets and other network and interface parameters from a DHCPv6 server to a DHCPv6 PD client. This means that instead of a single address assignment, DHCPv6 PD will assign a set of IPv6 subnets, or a prefix of Internet Protocol version 6 (IPv6) addresses, for example 2001:db8::/60. This means that the client who has received the IPv6 subnets, or IPv6 address prefix, can assign IPv6 addresses dynamically to its IPv6 enabled interfaces.
The invention of the present invention makes use of another extension of the DHCPv6 which is referred to as Identity Association for Prefix Delegation (IA_PD) and is specified in RFC3633 of IETF. IA_PD is similar to PD in that prefixes are assigned to a client. IA_PD is a collection of prefixes assigned to a requesting client. Each IA_PD has an associated Identity Association Identifier (IAID). A requesting client may have more than one IA_PD assigned to it; for example, one for each of its interfaces. An IA_PD is a construct through which a delegating server and a requesting client can identify, group and manage a set of related IPv6 prefixes. Each IA_PD consists of an IAID and associated configuration information. An IA_PD for prefixes is the equivalent of an Identity Association (IA) for addresses as described in RFC 3315 of IETF.
An IA_PD is different from an IA, in that it does not need to be associated with exactly one interface. One IA_PD can be associated with the requesting router, with a set of interfaces or with exactly one interface. A requesting client must create at least one distinct IA_PD. It may associate a distinct IA_PD with each of its downstream network interfaces and use that IA_PD to obtain a prefix for that interface from the delegating server.
In aspects of this invention, a client receiving a prefix of IPv6 addresses as described above can be considered to be a gateway. The gateway configures and assigns an IPv6 address to IPv6 enabled M2M devices which form part of its local network. The gateway also receives a device management bootstrapping service address together with the prefix of IPv6 address and forwards the device management bootstrapping service address to the M2M devices. As will be explained in more detail below, in alternative embodiments the gateway receives a device management bootstrapping service address from a source other than a DHCPv6 server.
When the M2M has received the device management bootstrapping service address it can configure or save the address and then use the address to locate a bootstrapping server which runs the device management bootstrapping service.
This enables M2M devices to be more configurable, in particular, it enables the address for the device management bootstrapping service or function to be configured after the M2M device has been manufactured.
The term device management bootstrapping service or function used herein is a service run by a bootstrapping server and is for bootstrapping the M2M device by redirecting it to another server which configures or manages the M2M device to carry out a desired function, e.g. take a temperature reading or reconfigure when to take a temperature reading. Device Management Bootstrapping service address used herein is an address to the bootstrapping server which runs the device management bootstrapping service. The address may be a Uniform Resource Identifier (URI) or any other appropriate address. When the invention is implemented as part of lightweight management machine-to-machine protocol (LWM2M) as described below, the URI uniquely identifies the bootstrapping server or LWM2M bootstrap server, and is in the form “coaps://host:port”, where host is an IP address or FQDN, and port is the UDP port of the server.
The term “gateway” used herein is a network point or node that acts as an entrance to another network. It controls traffic to and from the network which it acts as a gateway for. A gateway may be considered to have the functions of a router in that it knows where to direct a given packet of data, and a switch, which furnishes the actual path in and out of the gateway for a given packet.
An aspect of the invention will now be described with reference to
At step 201, the gateway 103 sends a DHCPv6 request to the DHCPv6 server 104 requesting Identity Association for Prefix Delegation (AI_PD). The DHCPv6 104 assigns at least one prefix of an IPv6 address to the gateway 103 or its local network 101 and sends the at least one prefix to the gateway 103, step 202. In addition to the at least one prefix and as part of the AI_PD, options are included in the reply to the gateway 103. These options are a device management bootstrapping service address and a server certificate which certifies the bootstrapping server running the device managing bootstrapping service.
When the gateway 103 has received the at least one prefix of an IPv6 address and the device management bootstrapping service address, and optionally the server certificate, the gateway 103 proceeds to register itself with the bootstrapping server 105, step 203. This is so that the bootstrapping server 105 can at a later stage observe which M2M devices that have been configured with the device management bootstrapping service address. Upon receiving the registration request from the gateway 103, the bootstrapping server 105 configures itself to observe the gateway 103 and then sends a confirmation message to said gateway 103, step 204. When the bootstrapping server 105 wants information on which M2M devices that have received the device management bootstrapping service address, the bootstrapping server 105 sends a GET request to the gateway 103 for information on the M2M device that have been configured with the device management bootstrapping server address, step 205. The information may be IPv6 addresses of the M2M devices, time of receiving the device management bootstrapping service address or device unique identifiers (DUID) or any other relevant information. Although not shown in the
Some alternative configurations will now be described. For example, the gateway 103 is not limited to receive the device management bootstrapping service address from the DHCPv6 server 104. The gateway 103 can receive it from another source, for example another server. In one embodiment, the gateway 103 receives the device management bootstrapping service address during a router advertisement (RA) step. This may be a type 134 message as part of neighbour discovery protocol as described in RFC 4861 of IETF. Alternatively, the device management bootstrapping service address can be distributed to a gateway using HomeNet protocol as specified in RFC7368 of IETF.
Furthermore, the gateway 103 is not limited to registering itself with the bootstrapping server 105 such that the bootstrapping server 105 can later observe the M2M devices configured with the device management bootstrapping service address. For example, in an alternative embodiment the gateway 103 can send information such as a list of IPv6 addresses of said M2M devices without being prompted by the bootstrapping server 105 (see
It will now be described how an M2M device is configured with the device management bootstrapping service address. When an M2M device 102 is first switched on it sends out a multicast message to inform any listening nodes that it has been switched on. The M2M device 102 uses an IPv6 link-local multicast address which all gateways having DHCPv6 functionality listen in to. Thus, the M2M device 102 is not configured with a specific address for a gateway. The gateway 103 in
In step 303 in
The M2M device can now contact the bootstrapping server 105 as set out in step 304 so as to initiate the bootstrapping procedure, step 305.
Another embodiment will now be described with reference to
This embodiment makes use of a protocol developed by Open Mobile Alliance (OMA), namely Lightweight Machine to Machine (LWM2M). The LWM2M architecture is shown in
This embodiment is similar to the embodiments and its alternatives described with reference to
At step 601, the gateway 403 sends a DHCPv6 request to the DHCPv6 server 404 requesting Identity Association for Prefix Delegation (AI_PD). The DHCPv6 404 assigns at least one prefix of an IPv6 address to the gateway 403 or the capillary network 401 and sends the at least one prefix to the gateway 403 in step 602. In addition to the at least one prefix, the DHCPv6 server 404 may also send in step 602 “options” to the gateway as part of IA_PD. One such option is a device management bootstrapping service address which may be called LWM2M_BOOTSTRAPPING_URI. The DHCPv6 server 404 may also send a LWM2M server certificate as an option in step 602. This option may be called LWM2M_SERVER_CERT. The LWM2M certificate can be used by the M2M device 402 to verify the LWM2M server 405 running the device management bootstrapping service.
When the gateway 403 has received the at least one prefix of an IPv6 address and the device management bootstrapping service address, and optionally the LWM2M server certificate, the gateway 403 proceeds to register itself with the LWM2M server 405, step 603. This is so that the LWM2M server 403 can at a later stage observe which M2M devices that have been configured with the device management bootstrapping service address. The LWM2M server then configures itself to observe gateway 403, and then send a confirmation message to the gateway 403, step 603. When the LWM2M server 405 wants to find out which M2M devices that have received the device management bootstrapping service address, the LWM2M server 405 sends a GET request to the gateway 403 for information on the M2M device that have been configured with the device management bootstrapping server address, step 605. The information may be IPv6 addresses of the M2M devices, timestamp of receiving the device management bootstrapping service address or device unique identifiers (DUID) or any other relevant information. Although not shown in the
Furthermore, the gateway 403 is not limited to registering itself with the LWM2M server 405 such that the LWM2M server 405 can later observe the M2M devices configured with the device management bootstrapping service address. For example, in an alternative embodiment the gateway 403 can send information of said M2M devices without being promoted by the LWM2M server 405, or it can send information of an M2M device as soon as it has been configured with the device management bootstrapping service address. This ad hoc process of providing information to the bootstrapping server 405 may be implemented by using the gateway 403 performing a PUT operation in accordance with the HTTP protocol.
Furthermore, in the example where the LWM2M server 405 is configured to observe M2M devices configured with the device management bootstrapping service address, it may request a registered-client object from the gateway as shown in
It will now be described how an M2M device is configured with the device management bootstrapping service address. When an M2M device 402 is first switched on it sends out a multicast message to inform any listening nodes that it has been switched on. The M2M device 402 uses an IPv6 link-local multicast address which all gateways having DHCPv6 functionality listen in to. Thus, the M2M device 402 is not configured with a specific address for a gateway. The gateway 403 in
In step 703 in
The M2M device 402 can now contact the LWM2M server 405, step 704. The LWM2M responds to the M2M device 402 so as to initiate bootstrapping procedure.
The embodiments described herein provide the advantage of that the device management bootstrapping service address in M2M devices can be configured and reconfigured at any time. Thus, M2M devices do not have to be programmed with such an address during manufacturing stage. Furthermore, as the address can easily be changed the M2M devices are more configurable and problems with malfunctioning or malicious networks and bootstrapping servers can more easily be overcome, for example by changing the device management bootstrapping service address in M2M devices.
An embodiment of a gateway for configuring a device management bootstrapping service address in an M2M device will now be described. The gateway may be gateway 103 or 403 as described above. The gateway is configured to send a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD, and receive a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway. The gateway is further configured to receive a device management bootstrapping service address from a node. This node may be the DHCPv6 server, such that the gateway is configured to receive the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD. However, in alternative embodiments the gateway may receive the device management bootstrapping service address from another node or server during a router advertisement (RA) procedure or in accordance with HomeNet protocol as specified in RFC7368 of IETF.
The gateway may further be configured to send to an M2M device an IPv6 address, based on the prefix, together with the device management bootstrapping service address. This may be implemented by the gateway being configured to receive a request from an M2M device for an IPv6 address, to configure an IPv6 address based on the prefix received from the DHCPv6 server and assign said IPv6 address to the M2M device, and then send it to the M2M device together with the device management bootstrapping service address.
The gateway may be further configured to send the IPv6 address assigned to the M2M device to a server to which the device management bootstrapping service address leads. This server may be a LWM2M server is described in more detail above, however for clarification, it is configured to run a bootstrapping service or function. This optional feature enables the gateway to send a notification to the server on an ad hoc basis when a new M2M device, or several M2M devices, has been sent the device management bootstrapping service address. This may be achieved by the gateway performing a PUT operation for each M2M device or for a batch of new M2M devices.
In an alternative example, sever may request an update on M2M devices that have recently received the device management bootstrapping service address. This may be achieved by the gateway compiling a list of IP addresses of M2M devices to which it has sent the device management bootstrapping service address, and upon receiving a request for this list from the server of the device management bootstrapping service address, the gateway is configured to send said list to said server.
Again, the server here may be a LWM2M server and in order to implement the LWM2M server observing which M2M devices the gateway has sent the device management bootstrapping service address, the gateway may be configured with LWM2M object comprising the list of IP address of M2M devices. An example of such an object is shown in
The gateway may also be configured to send the device management bootstrapping service address together with a server certificate to the M2M device. The server certificate enables the M2M device to verify the server of the device management bootstrapping service address.
The request received from the M2M device and the response sent to the M2M device as set out above, may be I accordance with the DHCPv6 protocol. Furthermore, the request for IA_PD sent to the DHCPv6 server and the response received from the DHCPv6 server as set out above, may be in accordance with the DHCPv6 protocol.
The gateway may be a capillary gateway of a capillary network comprising M2M devices.
An embodiment of an M2M device suitable for being configured with a device management bootstrapping service address will now be described. This M2M device may be the M2M device 102 or 402 described above. The M2M device is configured to send a request for an Internet Protocol version six, IPv6, address to a gateway, and receive a response from the gateway. The response comprises an IPv6 address assigned to the M2M device and a device management bootstrapping service address. The device management bootstrapping service address leads to a server, or a bootstrapping server, which comprises and runs a bootstrapping function so that the M2M can be bootstrapped upon being switched on. This enables the M2M device to be configured with a device management bootstrapping service address after manufacturing stage making it possible and easier for the M2M device to change bootstrapping server.
The request sent by the M2M device to the gateway may comprise a dynamic host configuration protocol for Internet protocol version six, DHCPv6, request message.
The M2M device may belong to a capillary network and may be configured to send the request for an IPv6 address to a capillary gateway.
The M2M device may also comprise a light weight machine to machine protocol, LWM2M, client. This enables the M2M device to communicate with the gateway and/or bootstrapping server in accordance with the LWM2M protocol.
An embodiment of A Dynamic Host Configuration Protocol for Internet Protocol Version Six, DHCPv6, Server will now be described. This DHCPv6 server may be DHCPv6 server 104 or 404 described above. The DHCPv6 server is configured to receive a request for Identity Association Prefix Delegation, IA_PD, and in response send a device management bootstrapping service address to a client so that said client can be configured with said address.
The client may be an M2M device, and the M2M device may receive the device management bootstrapping service address from a gateway which in turn has received the address from the DHCPv6 server, similar to the embodiments described above with reference to
The DHCPv6 server distributes the device management bootstrapping service address so that M2M devices do not have to be manufactured with said address but can be configured with the address at a later stage.
An embodiment of a server comprising a bootstrapping function for an M2M device will now be described. The server may be a bootstrapping server, in particular it may be bootstrapping server 105 or a LWM2M server, such as LWM2M server 405, including a LWM2M bootstrapping server or a LWM2M Management Server. The device management bootstrapping service address leads to this server.
The server is configured to receive a notification of at least one M2M device having received a device management bootstrapping service address. The server may receive a notification from a gateway without having requested such a notification. Alternatively, the server may be configured to receive a registration request from a gateway, and register said gateway in order to receive said notification from said gateway. If the server is a LWM2M server, the server may observe a LWM2M object in the gateway, the LWM2M object comprises a list of M2M devices having received the device management bootstrapping service address.
Elements of the gateway and the M2M device may cooperate so as to form a system for configuring the M2M. In one embodiment of such a system a gateway is configured to send a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD. The gateway is further configured to receive a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway. The gateway is also configured to receive a device management bootstrapping service address from a node. The system further comprises an M2M device configured to request an IPv6 address based on the prefix and receiving the IPv6 address from the gateway together with the device management bootstrapping service address.
In one embodiment, the node is the DHCPv6 server, and the gateway is configured to receive the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD.
Various methods performed by the gateway 103, 403, M2M device 102, 402, DHCPv6 server 104, 404, and the bootstrapping server 105, 405 will now be described.
The method 800 is for configuring a device management bootstrapping service address in an M2M device. The method 800 comprises the gateway sending a request to a dynamic host configuration protocol for internet protocol version six, DHCPv6, server for identity association for prefix delegation, IA_PD, step 801. In the next step, the method comprises the gateway receiving a response from the DHCPv6 server comprising at least one prefix of an Internet Protocol for version 6, IPv6, address assigned to the gateway, step 802. In step 803 the gateway receives a device management bootstrapping service address from a node.
Optional features of method 800 will now be described with reference to
The node may be the DHCPv6 server, and the gateway may receive the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD, step 804. In another unillustrated embodiment, the device management bootstrapping service address is distributed to the gateway during a router advertisement (RA) process or using HomeNet protocol, or the address is distributed from another appropriate source.
In one embodiment, the gateway sends an M2M device an IPv6 address, based on the prefix, together with the device management bootstrapping service address, step 805. This may be implemented by the gateway receiving a request from an M2M device for an IPv6 address, configuring an IPv6 address based on the prefix received from the DHCPv6 server and assigning said IPv6 address to the M2M device, and then sending it to the M2M device together with the device management bootstrapping service address, step 806.
In another embodiment, the gateway sends the IPv6 address assigned to the M2M device to a server to which the device management bootstrapping service address leads, step 807. This server may be a LWM2M server is described in more detail above, however for clarification, it is configured to run a bootstrapping service or function. This optional feature enables the gateway to send notification to the server on an ad hoc basis when a new M2M device, or several M2M devices, has been sent the device management bootstrapping service address. This may be achieved by the gateway performing a PUT operation for each M2M device or for a batch of new M2M devices.
In an alternative example, sever may request an update on M2M devices that have recently received the device management bootstrapping service address. This may be achieved by the gateway compiling a list of IP addresses of M2M devices to which it has sent the device management bootstrapping service address, and upon receiving a request for this list from the server of the device management bootstrapping service address, the gateway is configured to send said list to said server, step 808.
Again, the server here may be a LWM2M server and in order to implement the LWM2M server observing which M2M devices the gateway has sent the device management bootstrapping service address, the gateway may be configured with LWM2M object comprising the list of IP address of M2M devices. An example of such an object is shown in
In one embodiment, the gateway sends the device management bootstrapping service address together with a server certificate to the M2M device, step 809. This is so that the M2M device can verify the server.
The request received from the M2M device and the response sent to the M2M device may be according to the DHCPv6 protocol. The request for IA_PD sent to the DHCPv6 server and the response received from the DHCPv6 server may be according to the DHCPv6 protocol. Furthermore, the gateway performing method 800 may be a capillary gateway of a capillary network comprising M2M devices.
Some alternatives of the method will now be described. The request may comprise a dynamic host configuration protocol for Internet protocol version six, DHCPv6, request message. The M2M device may belong to a capillary network and the method may comprise sending the request for an IPv6 address to a capillary gateway. The M2M device may comprise a light weight machine to machine protocol, LWM2M, client.
The client may be an M2M device, and the M2M device may receive the device management bootstrapping service address from a gateway which in turn has received the address from the DHCPv6 server, similar to the embodiments described above with reference to
The method performed by the server comprises receiving a notification of at least one M2M device having received a device management bootstrapping service address, step 1101. The server may receive a notification from a gateway without having requested such a notification. Alternatively, the server may be configured to receive a registration request from a gateway, and register said gateway in order to receive said notification from said gateway, step 1102. If the server is a LWM2M server, the server may observe a LWM2M object in the gateway, the LWM2M object comprises a list of M2M devices having received the device management bootstrapping service address.
The above described methods 800, 900, 1000 and 1100 may be performed by elements cooperating to form a system for configuring an M2M device. Such a system is illustrated in
In one embodiment, the node is the DHCPv6 server, and the method further comprises the gateway receiving the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD.
The methods of the present invention, as illustrated by the above examples, may be conducted on receipt of suitable computer readable instructions, which may be embodied within a computer program running on the gateway, M2M device, DHCPv6 server or bootstrapping server.
Referring to
In one embodiment, the node is the DHCPv6 server, and the communication module 1601 comprises means for receiving the device management bootstrapping service address from the DHCPv6 server in response to its request for IA_PD.
In one embodiment, the communication module 1601 comprises means for sending an M2M device an IPv6 address, based on the prefix, together with the device management bootstrapping service address. This may be implemented by the communication module 1601 receiving a request from an M2M device for an IPv6 address and the gateway further comprising a configuration module 1602 for configuring an IPv6 address based on the prefix received from the DHCPv6 server and assigning said IPv6 address to the M2M device, and the communication module further comprising means for sending it to the M2M device together with the device management bootstrapping service address.
The communication module 1601 may further comprise means for sending the IPv6 address assigned to the M2M device to a server to which the device management bootstrapping service address leads.
In one embodiment, the configuration module 1602 comprises means for storing a list of IP addresses of M2M devices to which it has sent the device management bootstrapping service address, and the communication module 1601 comprising means for receiving a request for this list from a server of the device management bootstrapping service address, and sending said list to said server.
In another embodiment, the configuration module 1602 comprises means for being configured with a light weight machine to machine, LWM2M, protocol object comprising the list of IP address of M2M devices to which it has sent the device management bootstrapping service address.
The communication module 1601 may further comprise means for sending the device management bootstrapping service address together with a server certificate to the M2M device.
The request received from the M2M device and the response sent to the M2M device may be according to the DHCPv6 protocol. The request for IA_PD sent to the DHCPv6 server and the response received from the DHCPv6 server may be according to the DHCPv6 protocol.
The gateway 1600 may be a capillary gateway of a capillary network comprising M2M devices.
Referring to
The request may comprise a dynamic host configuration protocol for Internet protocol version six, DHCPv6, request message. The M2M device may belong to a capillary network and is configured to send the request for an IPv6 address to a capillary gateway. The M2M device may comprise a light weight machine to machine protocol, LWM2M, client. The client may be an M2M device, and the M2M device may receive the device management bootstrapping service address from a gateway which in turn has received the address from the DHCPv6 server, similar to the embodiments described above with reference to
Referring now to
Referring now to
The communication module may further comprise means for receiving a registration request from a gateway. The bootstrapping server may further comprise a configuration module 1902 for registering said gateway in order to receive said notification from said gateway.
Aspects of the present invention thus provide, methods, apparatus, computer programs and a system for configuring an M2M device, in particular with a device management bootstrapping service address. Aspects of the invention provide the advantages that an M2M device does not have to be configured at manufacturing stage with a device management bootstrapping service address as this address can be changed at a later stage. Thus, as this address can easily be changed, M2M devices can easily be reconfigured to bootstrap to another server in case the previous server was misbehaving or malfunctioning.
The methods of the present invention may be implemented in hardware, or as software modules running on one or more processors. The methods may also be carried out according to the instructions of a computer program, and the present invention also provides a computer readable medium having stored thereon a program for carrying out any of the methods described herein. A computer program embodying the invention may be stored on a computer-readable medium, or it could, for example, be in the form of a signal such as a downloadable data signal provided from an Internet website, or it could be in any other form.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim, “a” or “an” does not exclude a plurality, and a single feature or other unit may fulfil the functions of several units recited in the claims. Any reference signs in the claims shall not be construed so as to limit their scope.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2016/051591 | 1/26/2016 | WO | 00 |