Patent Description:
A content delivery network or content distribution network (CDN) is a large distributed system of proxy servers deployed in multiple data centers via the Internet. The goal of a CDN is to serve content to end-users with high availability and high performance. CDNs serve a large fraction of Internet content, including web objects (text, graphics and scripts), downloadable objects (media files, software, and documents), applications (e-commerce, portals), live streaming media, on-demand streaming media and social networks.

Requests for content from a device may be directed to a node in a CDN that is optimal in some way. For example, a node that is best for serving content to the device may be chosen. This may be determined, for example, by choosing a node that has the fewest network hops to the device, the shortest latency to the device, or the highest availability. When optimizing for cost, locations that are least expensive may be chosen instead.

Adaptive bitrate streaming is a technique used in streaming some media content over communication networks. While earlier streaming systems used protocols such as RTP with RTSP, later adaptive streaming technologies are usually based on HTTP and designed to work efficiently over large distributed HTTP networks such as the Internet.

In some circumstances, it may be desirable to reduce the data rate available to deliver certain content such as video to a device. For example, some content may be "zero-rated," in that downloading of the content to a device over a network is not counted towards a maximum amount of data that the device is permitted to download, for example as part of a contract between the network and the device's user. Such content may be popular with many users, and hence reducing the available data rate available to deliver the content (also known as throttling or traffic shaping) may reduce the risk of the network becoming congested.

<CIT> describes controlling bandwidth rate limiting and client rendering rate limiting in a video delivery network. <CIT> describes a method and controller for controlling HTTP adaptive streaming.

One aspect of the present disclosure provides a method in a traffic monitor in a communications network according to claim <NUM>.

Another aspect of the present disclosure provides apparatus for monitoring content delivery according to claim <NUM>.

When it is desired to throttle delivery of content such as video or other multimedia to a device from a content delivery network through another network, such as a mobile network, the other network (e.g. mobile network) reduces the data rate available for downloading the content. If the content is Adaptive Bit Rate (ABR) content, a device receiving and consuming the content (e.g. viewing a video) may monitor the content download bitrate and estimate (e.g. directly or via buffer level) the ratio between download bitrate and link bitrate, the link bitrate being the estimated bitrate of a connection between the device and a network (e.g. mobile network). The link bitrate should be larger than the media bitrate to ensure a continuous playback of the content. The device may switch to a lower quality of the content having a lower bitrate when the device estimates that the download bitrate is equal to or larger than the link bitrate. The device may switch to a higher quality for the content when it estimates that the link bitrate is larger than the download bitrate, or a buffer contains a sufficiently large amount of content still to be consumed.

Throttling of the content presents a lower bit rate to the device for downloading the content, and causes the device to select a quality for the content that is not the highest quality that the device could select if the network did not throttle delivery of the content. Therefore, usage of network bandwidth by the device when downloading the content can be controlled. However, throttling or traffic shaping by the network has a detrimental effect on performance of the device or the network. For example, a Radio Access Network (RAN) scheduler may not be able to fill radio slots assigned to the device, and thus data is transmitted to the device at a lower spectral efficiency. Furthermore, as the device is receiving the content at a lower bit rate than is supported by the connection between the device and the network, the device may need to remain active for longer while downloading the content, which may have a detrimental effect on battery life of the device, for example.

Embodiments of this disclosure seek to provide a more efficient means for controlling (e.g. capping) delivery of content to a device.

<FIG> shows an example of a communications system <NUM>. The communications system <NUM> includes a mobile network <NUM> to which a device <NUM> is connected. The device <NUM> may consume content that is provided by a Content Delivery Network (CDN) <NUM> over the mobile network <NUM>. The communications system <NUM> also includes a Request Router (RR) <NUM>. The RR <NUM> may receive requests for content (e.g. a request for a manifest associated with the content) from the device <NUM> and redirect the device to the CDN <NUM>.

In some examples, the mobile network <NUM> may wish to control delivery of content to the device <NUM>. For example, the mobile network <NUM> may wish to reduce the quality of content delivered to the device <NUM> if the content is zero-rated for the device.

<FIG> shows an example of a manifest <NUM> associated with Adaptive Bit Rate (ABR) content. Data associated with the content (e.g. a video) is split into n segments, for example n segments of equal length, such as <NUM> seconds. Each segment is represented by m data files having respective quality levels, and therefore respective bitrates and file sizes. Data associated with the content therefore comprises n*m data files. The manifest <NUM> identifies locations in a network (e.g. CDN <NUM>), such as filenames or URLs, from which each of the segments can be retrieved. For example, the manifest <NUM> identifies n data files having a first quality, n data files having a second quality, and so on. A segment of content at different quality levels may have different file sizes. Therefore, for example, where an available download bitrate between a node (e.g. a CDN or cache node) and a device (e.g. device <NUM>) is large, the device may request larger segments and thus provide the content (e.g. display a video) at a high quality. Conversely, where the available download bitrate is lower, the device may request smaller segments for lower quality content. By separating each quality level into segments, the device may select a quality level on the fly with regard to changing network conditions and available download bitrate, and may seamlessly provide (e.g. display) adjacent segments of different quality levels to the user with little or no interruption.

<FIG> shows an example of a method <NUM> of receiving content in a device. The device may be for example the device <NUM> of <FIG>. The content may be, for example, Adaptive Bitrate (ABR) content such as ABR video. A first step <NUM> of the method comprises sending a request for the content to a first network node. In some examples, the request comprises a HTTP GET request for a manifest associated with the content, the request identifying the Request Router <NUM>. The RR <NUM> may be identified by an IP address of the RR <NUM> in the request. The IP address may have been previously obtained by the device <NUM> for example through a DNS resolution request sent to the mobile network <NUM>. The DNS resolution request may identify a Uniform Resource Locator (URL) or Fully Qualified Domain Name (FQDN) of the manifest.

The method <NUM> includes a step <NUM> of receiving a redirection instruction from the first network node, wherein the redirection instruction indicates a Content Delivery Network (CDN) and indicates a data transfer policy. The redirection instruction may, for example, instruct the device <NUM> to retrieve the requested content (e.g. manifest) from the CDN <NUM>. The redirection instruction may for example be a HTTP Redirect instruction, such as a HTTP message with status code <NUM> Moved Permanently, <NUM> See Other or <NUM> Temporary Redirect. The redirection instruction may indicate the CDN by including an indication in the redirection instruction. For example, the indication may be included in a HTTP header of the redirection instruction. Alternatively, for example, the redirection instruction may identify the CDN (e.g. a node in the CDN such as a cache node) with a URL of the CDN, for example a URL of the requested manifest within the CDN. The URL may include a query parameter with a value that identifies a data transfer policy. An example of such a URL may be http://<NUM>. <NUM>/manifests/reauested manifest. m3u?policy=<NUM>, where policy=<NUM> identifies the data transfer policy as '<NUM>'.

The RR <NUM> determines that a data transfer policy is to be included in the redirection instruction, and/or may determine which policy should be indicated. For example, the RR <NUM> may determine that the requested content should be zero-rated for the user and thus provide an indication of a particular policy, such as a policy that controls the quality of the content provided to the device. In some cases, the RR <NUM> may be a part of mobile network <NUM>.

The method <NUM> also includes a step <NUM> of sending a request for the content to the content delivery network, wherein the request indicates the data transfer policy. For example, the device essentially forwards an indication of the data transfer policy to the CDN. In some examples, where the redirection instruction identifies the CDN with a URL that includes a query parameter with a value that identifies a data transfer policy, the device may request for the content to the content delivery network will include the URL and hence will include the parameter identifying the data transfer policy.

Step <NUM> of the method <NUM> comprises receiving data associated with the content from the content delivery network according to the data transfer policy. For example, the data may be received in the form of portions of data such as segments of content. In some examples, delivery of the data transfer policy is enforced by the CDN, such as for example a node (e.g. cache node) in the CDN. A manifest associated with the content provided to the device identifies only those quality levels that comply with the policy, and so the device cannot request quality levels that do not comply with the policy. Alternatively, if the device requests content at a quality that is not permitted under the data transfer policy, the CDN may indicate that the requested content is unavailable (e.g. with an HTTP <NUM> Not Found message), causing the device to request the content at a different quality.

The data transfer policy may for example indicate a property of the transfer of data from the content delivery network to the device, or a property of the data (e.g. content) itself. For example, the policy may indicate a data rate (e.g. media bitrate), a content quality, a maximum data rate (e.g. maximum media bitrate) or a maximum content quality. For example, the data transfer policy may indicate one or more bit rates that are permitted, or may for example identify particular representations in a content description data structure such as a manifest that are permitted under the policy.

In some examples, the redirection instruction includes an indication of the data transfer policy that is encoded, encrypted or scrambled. For example, if the redirection instruction redirects the device to retrieve a manifest from within a CDN, and the indication of the data transfer policy is a parameter within the URL, the parameter may be encoded, encrypted or scrambled such that it cannot be understood by the device or a third party. This may hinder or prevent the device or third party from, for example, modifying the indicated data transfer policy, applying the same policy to other content, or applying a policy for other content or another device to the requested content, for example. Additionally or alternatively, a URL of a manifest requested by the device, and sent for example to RR <NUM>, may be encoded, encrypted or scrambled, so that it cannot be interpreted by an intermediate network such as mobile network <NUM>. This may ensure privacy between the content provider and the device.

In some examples, an indication of a data transfer policy may specify rules of the data transfer policy. For example, the rules may specify permitted download bitrates, a maximum permitted bit rate, or one or more other rules for transfer of the content from the CDN to the device. In other examples, the indication of the data transfer policy may comprise an identifier that the CDN may use to retrieve rules for the identified data transfer policy.

<FIG> shows an example of communications within a communication system according to an example. A device <NUM>, which may for example be device <NUM> shown in <FIG>, sends a request <NUM> for one or more manifest URLs to a content provider <NUM>. The content provider <NUM> returns manifest URLs <NUM> to the device <NUM>. The URLs may be, for example, a web page with a number of links that are URLs pointing to different content (e.g. different videos). The device then sends a request <NUM> to a Request Router <NUM> (e.g. RR <NUM> shown in <FIG>) for a manifest. The request is sent to the RR <NUM> as, for example, the URLs from the content provider point to the RR <NUM>, or a DNS lookup of a URL or FQDN associated with the request resolves to the IP address of the RR <NUM>. The RR <NUM> replies with a redirect <NUM> (e.g. HTTP Redirect) that identifies a RR <NUM> within a CDN, and includes an indication of a data transfer policy.

The device then sends a request <NUM> for the manifest to the CDN RR <NUM>. The request <NUM> may also include the indication of the data transfer policy. The CDN RR <NUM> replies with a redirect <NUM> to a CDN node <NUM> such as a cache node. The CDN and/or the cache node may be selected based on certain criteria. For example, the CDN and/or cache node may be preferable to the device, such as having the fewest hops to the device, the shortest latency, the geographically closest location, and/or any other criteria.

The device <NUM> then sends a request <NUM> for the manifest to the CDN node <NUM>, which returns the manifest <NUM> to the device <NUM>. The device <NUM> can then download the content <NUM>, such as for example requesting one or more segments of ABR content, from the CDN node <NUM>. As indicated above, enforcement of the data transfer policy may be done by, for example, the CDN node <NUM>, for example by providing only permitted quality levels in the manifest, or by making impermissible quality levels unavailable to the device <NUM>.

<FIG> shows an example of a method <NUM> of in a network node. The method <NUM> may be carried out, for example, by a Request Router, a CDN node, a cache node or any other suitable node in a network. The method <NUM> comprises, in a first step, receiving a request for the content from a device. A second step <NUM> of the method <NUM> comprises sending a redirection instruction to the device, wherein the redirection instruction indicates a content delivery network (e.g. a node within a CDN) and indicates a data transfer policy for transfer of data associated with the content between the device and a content delivery network. The redirection instruction may for example include an indication of the data transfer policy, such as in a HTTP Header of a HTTP Redirection instruction, or may be included in a URL in the redirection instruction.

The method <NUM> may be implemented by a node, such as for example a Request Router, that determines the data transfer policy and includes an indication in the redirection instruction. Alternatively, for example, the method <NUM> may be implemented in a node such as a CDN RR, CDN node or cache node, where an indication of the data transfer policy is included in the request for content from the device.

<FIG> shows an example of a method <NUM> in a content delivery network. The method <NUM> may be implemented by for example a node providing content such as a cache node. The method <NUM> includes, in step <NUM>, receiving a request for content from a device, the request indicating a data transfer policy, and in step <NUM>, sending data associated with the content to the device according to the data transfer policy. In some examples, the node implementing the method <NUM> sends a manifest associated with the content to the device, and may remove impermissible quality levels (i.e. impermissible according to the data transfer policy) from a manifest provided to the device, or may make impermissible quality levels inaccessible by the device. The request for the content may be, for example, a request for a manifest. The data associated with the content may be, for example, one or more portions of media (e.g. segments of content) requested by the device.

In at least some embodiments disclosed herein, responsibility for implementing or enforcing the data transfer policy, or any content delivery policy, may reside with the node providing the content (e.g. a CDN cache) and/or the device receiving the content (e.g. a wireless device or User Equipment, UE). However, the content being delivered may traverse another network, such as a mobile network. It may be desirable for an operator of the another network to monitor the content delivery to ensure that the data transfer policy is being complied with, and to take action upon detection of any violation of the data transfer policy, such as for example a device downloading content having a bitrate greater than that permitted by the policy.

<FIG> shows an example of a communications system <NUM>. The communications system <NUM> includes a mobile network <NUM>, device <NUM>, CDN <NUM> and RR <NUM>, which may be similar in at least some aspects to the mobile network <NUM>, device <NUM>, CDN <NUM> and RR <NUM> shown in <FIG>. The communications system <NUM> also includes a traffic monitor <NUM> and a policy enforcer <NUM>. The RR <NUM>, traffic monitor <NUM> and/or policy enforcer <NUM> may in some examples be part of the mobile network <NUM>.

The traffic monitor <NUM> may monitor compliance of content delivery to devices with a data transfer policy or with a content delivery policy. Upon violation of a policy, the traffic monitor <NUM> may take a notification action, such as for example send a notification to policy enforcer <NUM>. The policy enforcer <NUM> may take action to enforce the policy, such as for example by notifying the CDN <NUM> and/or device <NUM>, by throttling content delivery to the device <NUM>, by sending notifications to the CDN <NUM> and/or device <NUM>, by charging the CDN <NUM> and/or user of the device <NUM>, and/or any other action.

<FIG> shows an example of a method <NUM> in a traffic monitor, such as for example traffic monitor <NUM>, in a communications network. The method <NUM> comprises, in step <NUM>, responsive to a notification that content is being delivered to a device from a content delivery network according to a data transfer policy, the notification including an indication of the data transfer policy, monitoring delivery of the content from the content delivery network to the device. The notification may be received from another node, such as for example a node in the mobile network <NUM>, the RR <NUM>, and/or any other node. The notification includes an indication of the data transfer policy so that the traffic monitor may determine whether the monitored traffic complies with or violates the policy. Step <NUM> of the method <NUM> comprises, responsive to a detection that the delivery of the content violates the data transfer policy, performing a notification action. The notification action may be, for example, a notification to the policy enforcer that delivery of content from the CDN <NUM> to the device <NUM> has violated the data transfer policy (or a content delivery policy).

Content delivery traffic from the content providing node to the device may be transmitted via a node implementing the method <NUM>. Alternatively, for example, a traffic monitoring node may insert one or more traffic monitoring nodes into user plane paths for the purpose of monitoring content delivery.

In some examples, performing the notification or enforcement action comprises sending an alarm notification to a node in the communications network. The node may be the policy enforcer or another node, such as for example a node in the mobile network <NUM>. Additionally or alternatively, performing the notification action may comprise notifying an enforcement entity (e.g. policy enforcer <NUM>) to enforce the data transfer policy for the delivery of the content from the content delivery network to the device.

The traffic monitor <NUM> may monitor delivery of data associated with the content, such as delivery of segments of content requested by the device <NUM>. Monitoring delivery of the content from the content delivery network to the device may in some examples comprise monitoring communications that match a <NUM>-tuple associated with delivery of the content from the content delivery network to the device. In an illustrative example, the notification in step <NUM> may be received at the traffic monitor <NUM> from the Request Router <NUM>, the Request Router <NUM> indicating at least one parameter of the <NUM>-tuple. The <NUM>-tuple may comprise a set of five parameters that characterize a connection between a node delivering content (e.g. a node in the CDN <NUM>) and the device <NUM>. The parameters of the <NUM>-tuple may specify the source IP address and port number of the node delivering content, the destination IP address and port number of the device <NUM> and the protocol in use (e.g. TCP/IP). In response, the traffic monitor may monitor for communications within the network that match the parameters of the <NUM>-tuple. For example, the traffic monitor may monitor for packets traversing the network that match the parameters of the <NUM>-tuple. By determining the number and size of the packets, the traffic monitor <NUM> may determine the data rate of data being transferred between the node delivering content and the device <NUM>, and thus may determine whether the supply of data has violated the data transfer policy or content delivery policy. The notification from the RR <NUM> (or from any other suitable node) may be triggered by a request from the device <NUM> for content, such as a manifest. Monitoring communications that match a <NUM>-tuple is provided herein as an illustrative example. Other examples include monitoring communications that match a <NUM>-tuple (e.g. source IP address, destination IP address and destination port), or monitoring any properties of the communications such that they can be identified. Another example comprises monitoring a combination of source IP address and server hostname, which the TDF can observe either from a URL if the request is clear-text HTTP or the Server Name Indication (SNI) field of the client hello message sent by the client when establishing an HTTPS session.

<FIG> shows an example of communications within a communications system. The communications and communications system include the elements shown in <FIG>. However, the communications system of <FIG> includes additional communications. In response to the request <NUM> for the manifest from the device <NUM> to the RR <NUM>, the RR sends a communication <NUM> to set a TDF rule to Traffic Detection Function (TDF) <NUM>, which may be for example an element of mobile network <NUM> shown in <FIG>. The TDF rule may cause the TDF <NUM> to monitor for traffic corresponding to content delivery from CDN node <NUM> to the device <NUM>, such as for example monitoring for communications that match a particular <NUM>-tuple. The TDF <NUM> in the example shown also sends a notification <NUM> to Policy and Charging Rules Function (PCRF) <NUM> to create a PCRF rule. The PCRF rule may indicate, for example, that the traffic should be zero-rated, not count towards the device's bandwidth usage, and/or should not be charged to the CDN or the user of the device <NUM>. The PCRF may also therefore in some examples monitor for content delivery traffic from CDN node <NUM> to device <NUM>, e.g. that matches a particular <NUM>-tuple, so as to implement network charging policies for example. Thus, during download <NUM> of content, the TDF <NUM> may monitor the content download, and may perform a notification action if violation of the TDF rule (which may comprise or represent a data transfer policy or content delivery policy) is detected.

In some examples, a manifest for content may be tailored to a particular device, such as for example removing references to quality levels and bitrates that do not comply with a data transfer policy or content delivery policy. However, this may place a burden on a node delivering the manifest or associated data, or on another network node. In some embodiments disclosed herein, a manifest is provided that is not customized for a particular device or policy, but instead presents all available quality levels and bit rates, and also presents a plurality of policies and policy rules.

<FIG> shows an example of a manifest data structure <NUM> according to embodiments of this disclosure. The manifest data structure includes information <NUM> identifying a plurality of representations of the media content with respective data rates, such as for example different quality levels for the content. The manifest <NUM> also includes information <NUM> identifying, for each of the representations, respective segments of the media content, and information <NUM> identifying a plurality of content delivery policies <NUM> for transfer of the media content from a content delivery network to a device. The content policies <NUM> may each have associated content delivery or data transfer rules <NUM>. The content delivery policies may specify any permitted parameter for transfer of content to a device. For example, the policies may specify which representations are permitted for a policy, permitted data rates or quality levels, maximum data rates or quality levels, segment lengths or sizes, buffering requirements, and/or any other parameters.

In one example, there are m representations, each relating to a respective quality level or bitrate, and for each representation there are n segments. The manifest <NUM> therefore indicates n*m data files. In the example manifest <NUM> shown, there are also k policies, each with associated policy rules.

In some examples, the manifest <NUM> may be provided to a plurality of devices (e.g. all devices) requesting the manifest from a CDN, and thus the manifest may not be customized for all devices. In some examples, the content delivery policy may be implemented by a device that wishes to download content. The device may receive an indication of the policy to be applied from any suitable source. For example, the policy to be applied may be included in a redirection request from a RR in a manner as described above.

In some cases where a manifest file may be generated or amended on the fly for a particular device requesting content, the manifest may not be stored in a network cache (e.g. CDN cache). However, for a manifest that may be provided to a device with little or no amendment, such as for example manifest <NUM>, the manifest may be stored in a repository such as a network cache, which may also be a node that serves content to a device.

<FIG> shows an example of a method <NUM> of receiving Adaptive Bit Rate (ABR) content. The method <NUM> may be implemented, for example, by a device downloading content. The method <NUM> comprises, in step <NUM>, receiving an ABR manifest associated with the content, the ABR manifest describing segments of content and specifying a plurality of policies and respective associated content delivery rules. The ABR manifest may be, for example, the manifest <NUM> shown in <FIG>. The content delivery rules may specify, for each policy, respective parameters for delivery of content to a device, such as for example data rate, maximum data rate, quality, maximum quality, buffering requirements, segment size, and/or any other parameters.

Step <NUM> of the method <NUM> comprises receiving an indication identifying one of the policies. The indication may be received in any suitable manner, including in any of the manners identified above. For example, the indication may be included in a HTTP Redirect instruction in a header or a URL, or may be received in an alternative communication. The indication may be received from a Request Router, from a CDN or a node within the CDN such as a cache node, or from any other suitable node. The manifest may be received from the CDN, and may be received from the same node as the indication or another node, and may be received in the same communication as the manifest, such as for example in a HTTP header of a HTTP communication containing the manifest.

Step <NUM> of the method <NUM> comprises requesting segments of the content from a content delivery network in accordance with the content delivery rules associated with the policy identified by the indication.

A particular example will now be described. When a RR redirects a device to retrieve a manifest from a provider (e.g. CDN), using for example any of the suitable redirect instructions disclosed herein, the RR appends a policy parameter, e.g. policy=<NUM>, to the URL in the redirection instruction. The parameter may be obfuscated (e.g. encoded, encrypted or scrambled). The following steps are performed.

<FIG> shows an example of apparatus <NUM> according to embodiments of the disclosure. The apparatus <NUM> may be for example an apparatus for receiving content. The apparatus <NUM> may be configured to perform the method of <FIG> or any other example.

The apparatus <NUM> comprises processing circuitry <NUM> (e.g. a processor) and a memory <NUM> in communication with the processing circuitry <NUM>. The memory <NUM> contains instructions executable by the processor <NUM>. In one embodiment, the memory <NUM> contains instructions executable by the processor <NUM> such that the apparatus is operable to send a request for the content to a first network node, receive a redirection instruction from the first network node, wherein the redirection instruction indicates a content delivery network and indicates a data transfer policy, send a request for the content to the content delivery network, wherein the request indicates the data transfer policy, and receiving data associated with the content from the content delivery network according to the data transfer policy.

<FIG> shows an example of apparatus <NUM> according to embodiments of the disclosure. The apparatus <NUM> may be for example an apparatus for redirecting a device to content. The apparatus <NUM> may be configured to perform the method of <FIG> or any other example.

The apparatus <NUM> comprises processing circuitry <NUM> (e.g. a processor) and a memory <NUM> in communication with the processing circuitry <NUM>. The memory <NUM> contains instructions executable by the processor <NUM>. In one embodiment, the memory <NUM> contains instructions executable by the processor <NUM> such that the apparatus is operable to receive a request for the content from a device, and send a redirection instruction to the device, wherein the redirection instruction indicates a content delivery network and indicates a data transfer policy for transfer of data associated with the content between the device and a content delivery network.

<FIG> shows an example of apparatus <NUM> according to embodiments of the disclosure. The apparatus <NUM> may be for example an apparatus for delivering content. The apparatus <NUM> may be configured to perform the method of <FIG> or any other example.

The apparatus <NUM> comprises processing circuitry <NUM> (e.g. a processor) and a memory <NUM> in communication with the processing circuitry <NUM>. The memory <NUM> contains instructions executable by the processor <NUM>. In one embodiment, the memory <NUM> contains instructions executable by the processor <NUM> such that the apparatus is operable to receive a request for content from a device, the request indicating a data transfer policy, and send data associated with the content to the device according to the data transfer policy.

<FIG> shows an example of an apparatus <NUM>, for example for receiving content. The apparatus <NUM> comprises a first sending module configured to send a request for the content to a first network node, and a first receiving module <NUM> configured to receive a redirection instruction from the first network node, wherein the redirection instruction indicates a content delivery network and indicates a data transfer policy. The apparatus <NUM> also comprises a second sending module <NUM> configured to send a request for the content to the content delivery network, wherein the request indicates the data transfer policy, and a second receiving module <NUM> configured to receive data associated with the content from the content delivery network according to the data transfer policy.

<FIG> shows an example of an apparatus <NUM>, for example for redirecting a device to content. The apparatus <NUM> comprises a receiving module <NUM> configured to receive a request for the content from a device, and a sending module <NUM> configured to send a redirection instruction to the device, wherein the redirection instruction indicates a content delivery network and indicates a data transfer policy for transfer of data associated with the content between the device and a content delivery network.

<FIG> shows an example of an apparatus <NUM>, for example for delivering content. The apparatus <NUM> comprises a receiving module <NUM> configured to receive a request for the content from a device, a sending module <NUM> configured to send a redirection instruction to the device, wherein the redirection instruction indicates a content delivery network and indicates a data transfer policy for transfer of data associated with the content between the device and a content delivery network.

<FIG> shows an example of apparatus <NUM> according to embodiments of the disclosure. The apparatus <NUM> may be for example an apparatus for monitoring content delivery. The apparatus <NUM> may be configured to perform the method of <FIG> or any other example. The apparatus <NUM> comprises processing circuitry <NUM> (e.g. a processor) and a memory <NUM> in communication with the processing circuitry <NUM>. The memory <NUM> contains instructions executable by the processor <NUM>. In one embodiment, the memory <NUM> contains instructions executable by the processor <NUM> such that the apparatus is operable to, responsive to a notification that content is being delivered to a device from a content delivery network according to a data transfer policy, the notification including an indication of the data transfer policy, monitor delivery of the content from the content delivery network to the device, and, responsive to a detection that the delivery of the content violates the data transfer policy, perform a notification action.

<FIG> shows an example of an apparatus <NUM>, for example for monitoring content delivery. The apparatus <NUM> comprises a monitoring module <NUM> configured to monitor delivery of the content from the content delivery network to the device in response to a notification that content is being delivered to a device from a content delivery network according to a data transfer policy, the notification including an indication of the data transfer policy, and a notification module <NUM> configured to performing a notification action responsive to a detection that the delivery of the content violates the data transfer policy.

<FIG> shows an example of apparatus <NUM> according to embodiments of the disclosure. The apparatus <NUM> may be for example an apparatus for receiving ABR content. The apparatus <NUM> may be configured to perform the method of <FIG> or any other example.

The apparatus <NUM> comprises processing circuitry <NUM> (e.g. a processor) and a memory <NUM> in communication with the processing circuitry <NUM>. The memory <NUM> contains instructions executable by the processor <NUM>. In one embodiment, the memory <NUM> contains instructions executable by the processor <NUM> such that the apparatus is operable to receive an ABR manifest associated with the content, the ABR manifest describing a plurality of segments of content and specifying a plurality of policies and respective associated data transfer rules, receive an indication identifying one of the policies, and request segments of the content from a content delivery network in accordance with the data transfer rules associated with the policy identified by the indication.

<FIG> shows an example of an apparatus <NUM>, for example for receiving ABR conetnt. The apparatus <NUM> comprises a first receiving module <NUM> v to receive an ABR manifest associated with the content, the ABR manifest describing segments of content and specifying a plurality of policies and respective associated data transfer rules, a second receiving module <NUM> configured to receive an indication identifying one of the policies, and a requesting module <NUM> configured to request segments of the content from a content delivery network in accordance with the data transfer rules associated with the policy identified by the indication.

<FIG> shows an example of portions of a manifest file, for example portions of an implementation of manifest file <NUM>.

In any of the embodiments described herein, an indication of the data transfer or content delivery policy to be implemented for content delivery from a CDN to a device may be received by the entity responsible for implementing the policy from any suitable node, for example from a RR, device or CDN node, and in any suitable form, such as a HTTP header or URL. The policy to be implemented can be determined by any suitable node, for example a Request Router in a network.

In any of the embodiments described herein, a URL used to request a manifest or content portion such as a segment, and/or an indication of a content delivery policy or data transfer policy, may be encoded, encrypted or scrambled in such a manner so that it may hinder or prevent a network (e.g. mobile network), a device or a third party from interpreting the URL or the indication.

Embodiments disclosed herein may use HTTP to send requests or redirections, or to retrieve data structures, manifests, content, segments or other data. In any embodiments, HTTP Secure (HTTPS) or any other suitable protocol may be used for any of the communications.

Claim 1:
A method (<NUM>) in a traffic monitor in a communications network, the method comprising:
responsive to a notification that content is being delivered to a device from a content delivery network according to a data transfer policy, the notification including an indication of the data transfer policy, monitoring (<NUM>) delivery of the content from the content delivery network to the device, wherein the data transfer policy indicates a data rate, a content quality, a maximum data rate or a maximum content quality for transfer of the content from the content delivery network to the device;
responsive to a detection that the delivery of the content violates the data transfer policy, performing (<NUM>) a notification action,
wherein performing the notification action comprises sending an alarm notification to a node in the communications network, and/or notifying an enforcement entity to enforce the data transfer policy for the delivery of the content from the content delivery network to the device; and
responsive to a request by the device to receive the content from the content delivery network according to the data transfer policy, sending a redirection instruction to the device redirecting the device to the content delivery network, wherein the redirection instruction includes an indication of the data transfer policy, and
wherein the request to receive the content from the content delivery network comprises a request for a manifest associated with the content, and wherein the manifest is associated with the content provided to the device and the manifest identifies only those quality levels that comply with the data transfer policy, and that the device cannot request quality levels that do not comply with the policy.