Language selection

Search

Patent 3003209 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 3003209
(54) English Title: FAILOVER WITH REDUNDANT MULTICASTS FOR SWITCHED DIGITAL VIDEO
(54) French Title: BASCULEMENT AVEC MULTIDIFFUSIONS REDONDANTES POUR VIDEO NUMERIQUE COMMUTEE
Status: Granted
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04N 21/64 (2011.01)
  • H04N 21/6405 (2011.01)
  • H04N 21/647 (2011.01)
  • H04L 27/34 (2006.01)
  • H04L 12/803 (2013.01)
  • H04L 29/14 (2006.01)
(72) Inventors :
  • MAO, WEIDONG (United States of America)
  • GABLER, PHILLIP (United States of America)
(73) Owners :
  • COMCAST CABLE COMMUNICATIONS, LLC (United States of America)
(71) Applicants :
  • COMCAST CABLE COMMUNICATIONS, LLC (United States of America)
(74) Agent: MACRAE & CO.
(74) Associate agent:
(45) Issued: 2023-11-28
(22) Filed Date: 2009-11-06
(41) Open to Public Inspection: 2011-05-06
Examination requested: 2018-04-30
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English Abstract

A method and system for delivering content is provided. In one example, responsive to a request by a client device identifying a video program, the system is configured to determine different first and second network paths for delivery of the video program from a content source; deliver the video program via the first network path to the client device; and responsive to a change in status of the video program being delivered via the first network path, deliver the video program via the second network path to the client device.


French Abstract

Linvention concerne une méthode et un système qui permettent de distribuer un contenu. Dans un exemple, en réponse à une requête par un dispositif client identifiant un programme vidéo, le système est conçu pour déterminer des premier et second trajets de réseau différents pour distribuer le programme vidéo à partir dune source de contenu; distribuer le programme vidéo par le premier trajet de réseau au dispositif client; et, en réponse à un changement de statut du programme vidéo étant distribué par le premier trajet de réseau, distribuer le programme vidéo par le second trajet de réseau au dispositif client.

Claims

Note: Claims are shown in the official language in which they were submitted.


CLAIMS:
1. A method comprising:
receiving, by a computing device and from a first user device, a request for a
first content
item;
sending, by the computing device and to a content source, a request to receive
the first
content item via a first physical network path;
based on determining that the first user device is associated with a first
service level,
receiving, from the content source, and while receiving a portion of the first
content item from the
content source via the first physical network path, the portion of the first
content item via a second
physical network path;
sending, to the first user device, the portion of the first content item that
was received via
the first physical network path;
receiving, by the computing device and from a second user device, a request
for a second
content item;
sending, by the computing device and to the content source, a request to
receive the second
content item via the first physical network path;
based on determining that the second user device is associated with a second
service level,
receiving, from the content source and via the first physical network path, a
portion of the second
content item while not receiving the portion of the second content item via
the second physical
network path; and
sending, to the second user device, the portion of the second content item
that was received
via the first physical network path.
2. The method of claim 1, further comprising:
determining a join type for a modulation device for receiving multicast
transmissions of
the first content item via the first physical network path and the second
physical network path,
wherein the join type comprises one of a serial join type or a concurrent join
type;
causing the modulation device to join, via the first physical network path, a
first multicast
session for the portion of the first content item; and
causing the modulation device to join, via the second physical network path
and according
to the determined join type, a second multicast session for the portion of the
first content item.
24

3. The method of claim 1 or 2, wherein the sending the portion of the first
content item
comprises:
sending a first portion of the first content item received via the first
physical network path;
and
sending a second portion of the first content item received via the second
physical network
path.
4. The method of claim 1 or 2, further comprising:
requesting a second portion of the first content item to be received via the
first physical
network path and via the second physical network path; and
after detecting a failure along the first physical network path, sending, to
the first user
device, the second portion of the first content item, that was received via
the second physical
network path.
5. The method of claim 4, wherein the failure comprises one or more of the
following:
a failure to receive the second portion of the first content item via the
first physical network
path, or
a reduction in quality of the second portion of the first content item
received via the first
physical network path.
6. The method of any one of claims 1-5, wherein the first physical network
path and the
second physical network path originate from a same address.
7. The method of any one of claims 1-6, wherein the receiving the portion
of the first content
item via the second physical network path comprises receiving the portion of
the first content item
via the second physical network path and from a second content source.
8. The method of any one of claims 1-7, wherein the receiving, while
receiving the portion of
the first content item via the first physical network path, the portion of the
first content item via
the second physical network path is further based on one or more of a balance
of traffic on video

interface inputs of a modulation device, a balance of traffic on a network, or
a balance of traffic
on a head end.
9. The method of claim 4, wherein the portion of the first content item
comprises a first video
quality, and the second portion of the first content item comprises a second
video quality that is
lower than the first video quality.
10. The method of any one of claims 1-9, further comprising:
configuring a first video interface input to receive the first content item
via the first physical
network path, and
configuring a second video interface input to receive the first content item
via the second
physical network path.
11. The method of claim 4, wherein the portion of the first content item
and the second portion
of the first content item pass through two different routers, respectively.
12. The method of any one of claims 1-11, wherein the sending the portion
of the first content
item is based on determining that the first physical network path functions
correctly.
13. The method of claim 1 or 2, further comprising:
after a failure is detected along the first physical network path, receiving
the portion of the
second content item via the second physical network path.
14. The method of any one of claims 1-13, wherein the computing device
comprises a
quadrature amplitude modulation (QAM) device.
15. The method of any one of claims 1-14, wherein the first physical
network path and the
second physical network path correspond to two different multicasts of the
first content item,
respectively.
26

16. A method comprising:
receiving, from a first user device, a request for a first content item;
based on a service level associated with the first user device, requesting to
receive a
portion of the first content item from a content source via a plurality of
physical network paths;
receiving the portion of the first content item via the plurality of physical
network paths;
sending, to the first user device, the portion of the first content item;
receiving, from a second user device, a request for a second content item;
based on a service level associated with the second user device, requesting to
receive a
portion of the second content item from the content source via a first one of
the plurality of
physical network paths, and not via a second one of the plurality of physical
network paths;
receiving the portion of the second content item via the first one of the
plurality of
physical network paths; and
sending, to the second user device, the portion of the second content item.
17. The method of claim 16, wherein the receiving the portion of the first
content item via the
plurality of physical network paths is further based on one or more of a
balance of traffic on
video interface inputs of a modulation device, a balance of traffic on a
network, or a balance of
traffic on a head end.
18. The method of claim 16 or 17, wherein the sending the portion of the
first content item is
based on determining that the first one of the plurality of physical network
paths functions
correctly.
19. The method of any one of claims 16-18, further comprising:
requesting a second portion of the first content item to be received via the
plurality of
physical network paths;
detecting a failure along the first one of the plurality of physical network
paths; and
after the detecting the failure, sending, to the first user device, the second
portion.
27

20. The method of claim 19, wherein the failure comprises one or more of
the following:
a failure to receive the second portion of the first content item via the
first one of the
plurality of physical network paths, or
a reduction in quality of the second portion of the first content item
received via the first
one of the plurality of physical network paths.
21. The method of claim 19, further comprising:
after the failure is detected along the first one of the plurality of physical
network paths,
receiving the portion of the second content item via the second one of the
plurality of physical
network paths.
22. The method of any one of claims 16-21, wherein the first one of the
plurality of physical
network paths and the second one of the plurality of physical network paths
correspond to two
different multicasts of the first content item, respectively.
23. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 16-22.
24. A system comprising:
a first computing device configured to send a request for a content item; and
a second computing device configured to perform the method of any one of
claims 16-22.
25. A computer readable storage medium storing instructions that, when
executed by one or
more processors, cause performance of the method of any one of claims 16-22.
26. The method of any one of claims 1-15, wherein the first service level
is purchased by a
user associated with the first user device, the second service level is
purchased by a user
associated with the second user device, and the first service level is
different from the second
service level.
28

27. The method of any one of claims 1-15 and 26, wherein the first physical
network path
comprises at least one network component that is not part of the second
physical network path.
28. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 1-15, 26 and 27.
29. A system comprising:
a first computing device configured to send a request for a first content
item;
a second computing device configured to send a request for a second content
item; and
a third computing device configured to perform the method of any one of claims
1-15, 26
and 27.
30. A computer readable storage medium storing instructions that, when
executed by one or
more processors, cause performance of the method of any one of claims 1-15, 26
and 27.
31. A method comprising:
receiving, by a computing device and from a plurality of user devices,
requests for content
items, wherein the plurality of user devices are associated with different
service levels that
comprise:
a first service level in which a requested content item is obtained via a
plurality of
physical network paths; and
a second service level in which a requested content item is obtained via a
single
physical network path;
determining, for each of the requests and based on a corresponding service
level for each
of the requests, a quantity of physical network paths for receiving a
corresponding requested
content item;
receiving, for each of the requests and via a corresponding quantity of
physical network
paths, a corresponding requested content item, wherein
29

based on determining that a first request, for a first content item,
corresponds to the
first service level, receiving a portion of the first content item via a first
physical network
path of the plurality of physical network paths while receiving the portion of
the first
content item via a second physical network path of the plurality of physical
network paths;
and
sending the requested content items to corresponding requesting user devices.
32. The method of claim 31, further comprising:
based on determining that a second request, for a second content item,
corresponds to the
second service level, receiving a portion of the second content item via the
first physical network
path, of the plurality of physical network paths, without receiving the
portion of the second content
item via the second physical network path of the plurality of physical network
paths.
33. The method of claim 31, wherein the first service level comprises
responding to a failure
along the first physical network path of the plurality of physical network
paths by sending a portion
of a requested content item that was received, before the failure occurred,
via the second physical
network path of the plurality of physical network paths.
34. The method of claim 31, wherein the second service level comprises
responding to a failure
along the first physical network path of the plurality of physical network
paths by using the second
physical network path of the plurality of physical network paths.
35. The method of claim 34, wherein the failure comprises one or more of
the following:
a failure to receive a portion of a requested content item via the first
physical network path,
Or
a reduction in quality of a portion of the requested content item received via
the first
physical network path.
36. The method of any one of claims 31-35, further comprising:
configuring a first video interface input to receive a first requested content
item via the first
physical network path of the plurality of physical network paths, and

configuring a second video interface input to receive the first requested
content item via
the second physical network path of the plurality of physical network paths.
37. The method of any one of claims 31-36, wherein the computing device
comprises a
quadrature amplitude modulation (QAM) device.
38. The method of any one of claims 31-37, wherein the plurality of
physical network paths
correspond to a plurality of different multicasts.
39. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 31-38.
40. A system comprising:
a first computing device configured to send a request for a content item; and
a second computing device configured to perform the method of any one of
claims 31-38.
41. A computer readable storage medium storing instructions that, when
executed by one or
more processors, cause performance of the method of any one of claims 31-38.
42. A method comprising:
determining, by a computing device, a plurality of different service levels,
wherein the
service levels correspond to using different quantities of physical network
paths for receiving
content items;
receiving, by the computing device and from a user device, a request for a
requested content
item;
receiving, from one or more content sources and using a corresponding quantity
of physical
network paths selected based on a service level, of the plurality of different
service levels,
associated with the user device, the requested content item, wherein the
receiving the requested
content item comprises receiving a portion of the requested content item via a
second physical
31

network path while receiving the portion of the requested content item via a
first physical network
path; and
sending the requested content item to the user device.
43. The method of claim 42, further comprising:
receiving, from the one or more content sources, a portion of an additional
requested
content item via the first physical network path without receiving the portion
of the additional
requested content item via the second physical network path.
44. The method of any one of claims 42 or 43, wherein one of the plurality
of different service
levels comprises responding to a failure along the first physical network path
by using the second
physical network path.
45. The method of claim 44, wherein the failure comprises one or more of
the following:
a failure to receive a portion of the requested content item via the first
physical network
path, or
a reduction in quality of a portion of the requested content item received via
the first
physical network path.
46. The method of any one of claims 42-45, wherein different physical
network paths
correspond to different multicasts.
47. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 42-46.
48. A system comprising:
a first computing device configured to send a request for a content item; and
a second computing device configured to perform the method of any one of
claims 42-46.
32

49. A computer readable storage medium storing instructions that, when
executed by one or
more processors, cause performance of the method of any one of claims 42-46.
50. A method comprising:
receiving, by a computing device and from a plurality of user devices,
requests for content
items;
determining, for each of the requests, a different quantity of connections for
receiving a
corresponding requested content item;
receiving, for each of the requests and via a corresponding quantity of
connections, a
corresponding requested content item, wherein
a portion of a first content item, of the content items, is received via a
first
connection while receiving the portion via a second connection; and
sending the requested content items to corresponding requesting user devices.
51. The method of claim 50, further comprising:
receiving a portion of a second content item, of the content items, via the
first connection,
without receiving the portion via another connection.
52. The method of claim 50, further comprising responding to a failure
along the first
connection by sending a portion of the first content item, of the content
items, that was received,
before the failure occurs, via the second connection.
53. The method of claim 50, further comprising responding to a failure
along the first
connection by using the second connection.
54. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 50-53.
33

55. A system comprising:
a first computing device configured to send a request for a content item; and
a second computing device configured to perform the method of any one of
claims 50-53.
56. A computer readable storage medium storing instructions that, when
executed by one or
more processors, cause performance of the method of any one of claims 50-53.
34

Description

Note: Descriptions are shown in the official language in which they were submitted.


A. .
FAILOVER WITH REDUNDANT MULTICASTS FOR SWITCHED DIGITAL VIDEO
[01] The application is a division of copending Canadian Patent Application
Serial No.
2,684,824, filed on November 6, 2009.
BACKGROUND
[02] Digital channels can be broadcast to subscribers via a network. The
network may
communicate the digital channels to node groups, which correspond to a group
of
subscribers located near one another (e.g., within a neighborhood). In some
instances,
only a portion of the channels are being simultaneously watched by the
subscribers of a
single node group, resulting in bandwidth being used to transport unwatched
channels.
SUMMARY
[03] The following presents a simplified summary in order to provide a basic
understanding of
some aspects as described herein. The summary is not an extensive overview of
all
aspects. It is neither intended to identify key or critical elements nor to
delineate the
scope of the present disclosure. The following summary merely presents various

example concepts in a simplified form as a prelude to the more detailed
description
below.
[04] According to some aspects, systems and methods may include, responsive to
a request by
a client device identifying a video program, determining different first and
second
network paths for delivery of the video program from a content source;
delivering the
CA 3003209 2018-04-30

video program via the first network path to the client device; and responsive
to a change
in status of the video program being delivered via the first network path,
delivering the
video program via the second network path to the client device.
[05] According to some aspects, systems and methods may include, responsive to
a request by
a client device identifying a video program, determining different first and
second
network paths for delivery of the video program from first and second content
sources;
delivering the video program via the first network path from the first content
source to
the client device; and responsive to a change in status of the video program
being
delivered via the first network path, delivering the video program via the
second network
path from the second content source to the client device.
[061 According to some aspects, systems and methods may include, responsive to
a request by
a client device identifying a video program, determining a redundant join type
based on
at least one of the following: whether multiple sources are available that
provide the
video program, a present balance of traffic on one or more video interface
inputs of an
edge device, or a subscriber service level; and generating and communicating a
program
setup request comprising the redundant join type to the edge device.
[07] These and other aspects of the disclosure will be apparent upon
consideration of the
following detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
[08] A more complete understanding of the present disclosure and the potential
advantages of
various aspects described herein may be acquired by referring to the following
2
CA 3003209 2018-04-30

description in consideration of the accompanying drawings, in which like
reference
numbers indicate like features, and wherein:
[09] Fig. 1 is a functional block diagram of an illustrative system for
providing redundant
multicast service to one or more client devices;
[10] Fig. 2 is a functional block diagram of an illustrative computer, which
may embody any
of the functional blocks of Fig. 1;
[11] Figs. 3A-D are signaling diagrams showing illustrative interactions
between functional
blocks of Fig. 1; and
[12] Fig. 4 is a flow chart showing illustrative steps that may be performed
by the system of
Fig. 1.
DETAILED DESCRIPTION
[13] Fig. 1 is a functional block diagram of an illustrative system for
providing redundant
multicast service to one or more client devices. In this example, the system
includes one
or more content sources 104 (e.g., sources A, B, and C), a network 101, and
one or more
client devices 110 (e.g., client devices 110A-D). The system as shown also
includes a
head end 150, which may include, for example, an edge resource manager (ERM)
102 or
other type of edge device controller, routers 106A and 106B, one or more edge
devices
such as quadrature amplitude modulation devices (QAMs) 108A and 108B, and a
switched digital video session manager (SDVSM) 103. The system may also
include
other head ends similar to or different from head end 150, each serving other
client
3
CA 3003209 2018-04-30

devices. The interconnections between the various functional blocks in Fig. 1
may be
unidirectional or bidirectional as desired.
[14] The system may act to provide content (e.g., video and/or audio content)
from one or
more of sources 104 to one or more of client devices 110. In some embodiments,
the
system may be a television content distribution system or an Internet Protocol
television
(IPTV) distribution system. Accordingly, the content may include television
shows,
movies, advertisements, etc. The content may be delivered to client devices
110 via
switched video techniques, which is also known as switched digital video
(SDV).
[15] In a typical television or IPTV distribution system, content is provided
over a plurality of
different channels. Using SDV, the physical distribution path between head end
150 and
one or more of client devices 110 carries only a subset of available channels
based on
channel requests by those client devices. For instance, only those channels
requested by
the client devices at any given time may be carried on the distribution path.
While those
channels not requested may still be available by the system, those non-
requested channels
may not be propagated into the distribution path. Because only a subset of the
channels
are typically requested at any given time, and because only a subset of the
client devices
will be in use at any given time, SDV may allow more available channels to be
provided
without necessarily increasing the actual maximum available bandwidth of the
distribution path.
[16] Thus, the use of SDV typically means that the network paths through which
content is
delivered (e.g., multicast video content) dynamically changes depending upon
which
content the various network clients are requesting at any given time. In
contrast, non-
4
CA 3003209 2018-04-30

SDV systems typically provide static delivery paths for content. Moreover, it
is generally
desirable to provide for path and/or content redundancy, in the event that
there is a point
of failure somewhere along a delivery path. While path redundancy may be
fairly
straightforward in a static path environment, this is less easy to accomplish
in a dynamic
path environment such as an SDV delivery network. Various techniques for
providing
such redundancy will be described later in the present disclosure.
[17] Any of the above-mentioned functional blocks, including ERM 102, SDVSM
103,
routers 106A-B, QAMs 108A-B, and client devices 110, may each be implemented,
for
example, as a computer or as a system or device that includes a computer. The
term
"computer" as referred to herein broadly refers to any electronic, electro-
optical, and/or
mechanical device, or system of multiple physically separate or physically
joined such
devices, that is able to process and manipulate information, such as in the
form of data.
Non-limiting examples of a computer include one or more personal computers
(e.g.,
desktop or laptop), servers, smart phones, personal digital assistants (PDAs),
television
set top boxes, and/or a system of these in any combination or subcombination.
In
addition, a given computer may be physically located completely in one
location or may
be distributed amongst a plurality of locations (i.e., may implement
distributive
computing). A computer may be or include a general-purpose computer and/or a
dedicated computer configured to perform only certain limited functions.
[18] A computer typically includes hardware that may execute software and/or
be configured
in hardware to perform specific functions. The software may be stored on a
computer-
readable medium in the form of computer-readable instructions. A computer may
read
those computer-readable instructions, and in response perform various steps as
defined by
CA 3003209 2018-04-30

those computer-readable instructions. Thus, any functions attributed to any of
the
functional blocks of Fig. 1 as described herein may be implemented, for
example, by
reading and executing such computer-readable instructions for performing those

functions, and/or by any hardware subsystem (e.g., a processor) from which the
computer
is composed.
[19] The term "computer-readable medium" as used herein includes not only a
single physical
medium or single type of medium, but also a combination of one or more
physical media
and/or types of media. Examples of a computer-readable medium include, but are
not
limited to, one or more memories, hard drives, optical discs (such as CDs or
DVDs),
magnetic discs, and magnetic tape drives.
[20] Such a computer-readable medium may store computer-readable instructions
(e.g.,
software) and/or computer-readable data (i.e., information that may or may not
be
executable). In the present example, a computer-readable medium (such as
memory)
may be included in any one or more of the functional blocks shown in Fig. 1
and may
store computer-executable instructions and/or data used by any of those
functional
blocks. Alternatively or additionally, such a computer-readable medium storing
the data
and/or software may be physically separate from, yet accessible by, any of the
functional
blocks shown in Fig. 1.
[21] Network 101 may be any type of network, and may be a single network or a
combination
of multiple networks, such as a cable and/or fiber optic and/or satellite
television
distribution network, a telephone network, and/or the Internet. Physically,
network 101
6
CA 3003209 2018-04-30

may be embodied, for example, as multiple computers communicatively coupled
together
as a plurality of nodes in a wired and/or wireless manner.
[22] An example functional block diagram of a computer is shown in Fig. 2, in
which the
computer is shown to include a processor 201, a communications interface 202,
storage
203, and a user interface 204. In this example, the computer-readable medium
may be
embodied by storage 203, and processor 201 may execute computer-executable
instructions stored by storage 203. Communications interface 202 may provide
for
unidirectional or bidirectional communications with any network or device
external to
that computer. For example, communications interface 202 as embodied in router
106A
may provide communications between network 101 and router 106A, as well as
between
router 106A and QAMs 108A and B. User interface 204 may allow for
unidirectional or
bidirectional information transfer between the computer and a human user, such
as via a
display or a keyboard. Again, any of the functional blocks of Fig. 1 may be
implemented
as a computer such as shown in Fig. 2.
[23] Figs. 3A-D are signaling diagrams showing illustrative interactions
between functional
blocks of Fig. 1, and Fig. 4 is a flow chart showing illustrative steps that
may be
performed by the system of Fig. 1.
[24] With reference to Figs. 1-4, in block 401 (Fig. 4), the flow diagram may
include one of
the client devices 110 requesting a video program by communicating a program
request
302 to SDVSM 103. In FIGs. 3A-D, the program request 302 may include a source
identifier (source ID) of the requested source providing the video program of
interest.
Table I, below, provides information on example sources 104 and the services
offered by
7
CA 3003209 2018-04-30

each. Sources A and B, for instance, both provide the same Entertainment
programming
but have different source Internet Protocol (IP) addresses.
8
CA 3003209 2018-04-30

Table I
Source Service Source Multicast Group IP Source IP Program
ID address address Number
A Entertainment 4163 232.96.36.39:4039 69.240.57.203 1
programming
Entertainment 4163 232.96.36.39:4039 169.240.57.203 1
programming
News 12153 232.96.36.1:4001 69.240.57.194 1
programming
[25] To request a particular program, the client device 110 may, for example,
communicate
the program request 302 to the SDVSM 103, requesting to tune to source ID
12153
(which identifies a News program from source C). The Source IP address may be
a
network address of a source 104 providing a multicast transporting the
requested
program. The Multicast Group IP address may be a destination network address
of the
group receiving the multicast, and the program number may be a place holder
for an
MPEG program number
[26] In block 402, the flow diagram may include the SDVSM 103 processing the
program
request 302 and communicating an ERM program setup request 304 to the ERM 102.
In
an example embodiment, the SDVSM 103 may determine whether the requested
source
ID is already being switched (i.e., not being provided) to another client
device 110 of the
same head end 150. If not, then the SDVSM 103 sends the ERM program setup
request
304 to the ERM 102 including the source ID of the source 104 providing the
requested
program.
9
CA 3003209 2018-04-30

[27] In block 403, the flow diagram may include the ERM 102 processing the ERM
program
setup request 304 and determining a redundant join type for the requested
program. In an
example embodiment, the ERM 102 may determine one of four redundant join
types: (1)
a single-source multicast, concurrent join as described in connection with
blocks 404a-
409a of FIG. 4 and FIG. 3A; (2) a single-source multicast, serial join as
described in
connection with blocks 404b-409b of FIG. 4 and FIG. 3B; (3) a dual-source
multicast,
concurrent join as described in connection with blocks 404c-409c of FIG. 4 and
FIG. 3C;
or a (4) a dual-source multicast, serial join as described in connection with
blocks 404d-
409d of FIG. 4 and FIG. 3D.
[28] The ERM 102 may determine the redundant join type based on various
factors such as,
but not limited to, whether multiple sources are available that provide the
same requested
program, the present balance of traffic on video interface inputs X, Y, and Z
of the QAM
108 and/or in the network 101 and/or the head end 150, and a service level
purchased by
a subscriber associated with the requesting client device 110.
[29] In a concurrent join, as further described below, the QAM 108 is
concurrently joined to,
and therefore simultaneously receives, two redundant multicasts carrying the
same
program. If the QAM 108 fails to receive one of the two multicasts, the QAM
108 can
rapidly switch and provide the other multicast, already being received by the
QAM 108,
to the client device 110 with minimal or no service disruption. In comparison,
in a serial
join, the QAM 108 is initially joined to, and thus only initially receives, a
single multicast
carrying a program. If the multicast fails, the QAM 108 may request that a
second
multicast be provided over a different path and/or from a different source
104. While a
serial join can consume less bandwidth than a concurrent join, a larger
service disruption
CA 3003209 2018-04-30

,
may occur in a serial join before the second multicast can be established, as
compared
with a concurrent join. For this reason, a serial join may correspond to a
lower service
level than a concurrent join.
Single-Source Multicast, Concurrent Join
[30] Where a single-source multicast, concurrent join is chosen in block 403,
the flow diagram
may include in step 404a the ERM 102 requesting the QAM 108 to set up a single-
source
multicast concurrent join. Referring to FIG. 3A, this request is represented
by the ERM
102 communicating a QAM program setup request 306 identifying a join type
instructing
the QAM 108 to set up a single-source multicast, concurrent join.
[31] In response to the setup request 306, the QAM 108 may, in block 405a,
join two
multicasts that each transport the requested program and that are received via
different
paths, hereafter referred to respectively as primary and secondary paths.
Prior to joining
the multicasts in this manner, the QAM 108 may configure two of its video
interface
inputs (e.g., X and Z) to respectively receive primary and secondary
multicasts. The
multicast received over the primary path will be referred to herein as a
primary multicast
312P, and the multicast received over the secondary path will be referred to
herein as a
secondary multicast 312S. The primary and secondary paths may be different
paths
across the system between the source 104 providing the multicast and the QAM
108
receiving the multicast. For example, the multicasts 312P and 312S may pass
through
different routers 106. In FIG. 1, for instance, source 104A may provide a
primary
multicast 312P routed through router 106A and received at video interface
input X of
QAM 108A, and a secondary multicast 312S routed through router 106B and
received at
video interface input Z of QAM 108A. In another example, the primary and
secondary
11
CA 3003209 2018-04-30

,
,
paths may both pass through the same router (e.g., router 106A), but may be
forwarded to
different video interface inputs (e.g., X and Y) of QAM 108A via different
links. While
the former example provides less opportunities for a single point of failure,
either
configuration is possible. As such, the primary and secondary paths may pass
through
one or more common network elements and links, but the paths taken by those
multicasts
may differ in at least some way.
[32] To join a multicast, the QAM 108 may communicate a join request 308 to
the source 104
via the network 101, identifying a multicast to join that transports the
requested program
and the video interface inputs configured to receive the primary and secondary
multicasts
312P and 312S. The QAM 0108 may also communicate an ERM program setup
response 310 to the ERM 102, but may or might not include multicast transport
headers
for both the primary and secondary multicasts 312P and 312S and the video
interface
inputs configured to receive the multicasts 312P and 312S. The ERM program
setup
response 310 may include a frequency and program number used by the client
device 110
to tune to the requested program. The ERM 102 also might not respond to the
ERM
program setup response 310 from the QAM 108 when operating in pessimistic mode
until
receiving a multicast transporting the requested video. For example, in
optimistic session
setup, the QAM 108 may return the ERM program setup response 310 to the ERM
102
before it has acquired video even though no video is yet present on its
output. In
pessimistic session setup, the QAM 108 may not return the session setup
response to the
ERM 102 until it has acquired video and video is present on its output.
1331 Next, in block 406a, the client device 110 receives the requested
program. In an
illustrative embodiment, the source 104 may communicate the primary multicast
312P of
12
CA 3003209 2018-04-30

the requested program to the head end 150 via the network 101. The source 104
may also
communicate the secondary multicast 312S of the requested program to the head
end 150
via the network 101. For example, to generate the primary and secondary
multicasts
312P and 312S, the single source 104 may provide the primary and secondary
multicasts
312P and 312S to different network ports on different routers. Also, the
primary and
secondary multicasts 312P and 312S may be of different quality of video, with
one being
of higher quality than the other. The multicasts 312P and 312S may traverse
different
network paths when transmitted via a UDP datagram, which may propagate through
the
network 101 via multiple paths, and may arrive in a pseudo-random, or even a
random
order.
[34] The QAM 108 may detect data of the primary multicast 312P on the video
interface input
configured to receive the primary multicast 312P, and may forward the primary
multicast
312P to the client device 110. The QAM 108 may also convert that primary
multicast
312P to a radio frequency (RF) video signal and transmit the RF video signal
to the client
device 110. In response to initially detecting receipt of multicasts 312P and
312S, the
QAM 108 may send an announce message 314 to the ERM 102 including a multicast
header of each of the primary and secondary multicasts 312P and 312S
successfully
joined over the primary and secondary paths. In an example, a multicast header
may
include one or more of a multicast address of the requested program or
service, a
multicast port of the requested program or service, a multicast program of
data within a
transport stream (e.g., MPEG-2 stream), a source address from which data of
the
multicast is streamed, bandwidth (e.g., bits per second), and a destination
address of a
physical port on which a join request is sent. The ERM 102 may send an
announce
13
CA 3003209 2018-04-30

,
response 316 to the QAM 108 and respond to the SDVSM 103 with an SDVSM program

setup response 318. The SDVSM 103 may communicate a program confirm message
320 in response to receiving the SDVSM program setup response 318. The program

confirm message 320 may include a frequency and a program number, which the
client
device 110 may use to tune to the requested source ID transporting the
requested
program.
[35] At some point during providing the primary multicast to the requesting
client device, the
QAM 108 may detect a failure of the primary multicast at block 407a. The
failure may
be of a link or some network element between the source 104 and the QAM 108 on
the
primary path, or of the video interface input receiving the primary multicast
312P. To
determine that a failure has occurred, the QAM 108 may determine that the
primary
multicast 312P has not been received for a predetermined amount of time, such
as for at
least one millisecond, or for at least one second. Thus, a problem with the
primary
multicast signal that does not occur for at least the predetermined period of
time may not
be considered to qualify as a failure. A failure may be considered to have
occurred not
only based on a loss of the primary multicast signal, but alternatively based
on a
reduction in quality of the received video program carried by the primary
multicast
signal.
[36] In response to detecting the failure, the QAM 108 may fail over in block
409a to the
secondary multicast 312S, and may begin forwarding the already-joined
secondary
multicast 312S to the requesting client device 110. Because the primary and
secondary
multicasts 312P and 312S are concurrently joined, the QAM 108 is already
receiving the
secondary multicast 312S at the time of the failure and can quickly begin
providing the
14
CA 3003209 2018-04-30

secondary multicast 312S to the client device 110 to reduce or eliminate a
disruption in
service. The QAM 108 may also communicate an announce failover message 322 to
the
ERM 102 that includes the multicast transport header of the secondary
multicast 312S.
The ERM 102 may respond with an announce failover response 324.
[37] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3A, the
QAM 108
may not communicate announce message 314 and may not receive announce response

316. Instead, upon detecting the failure, the QAM 108 may forward the
secondary
multicast 312S to the client device 110, and may communicate the announce
failover
message 322 to the ERM 102. The ERM 102 may respond with the announce failover

response 324 and may communicate the SDVSM program setup response 318 to the
SDVSM 103. The SDVSM 103 may then communicate the program confirm message
320 to the client device 110, as discussed above. Further, if there is the
single source
104A fails, then the client device 110 may signal loss of the channel to the
SDVSM 103,
and the SDVSM 103 may instruct the client device 110 to tune to a safe
channel.
Single-source multicast, serial join
[38] Referring again to FIG. 4, in block 403, the ERM may alternatively
determine a join type
of a single-source multicast, serial join for a requested program and so in
block 404b, the
ERM 102 may request the QAM 108 to set up a single-source multicast, serial
join,
which is also described in FIG. 3B. FIG. 3B differs from FIG. 3A as to when
the
secondary multicast 312S is joined. In FIG. 3A, the QAM 108 attempts to join
the
CA 3003209 2018-04-30

secondary multicast 312S when (or shortly after) joining the primary multicast
312P,
without waiting for a failure of the primary multicast 312P, and hence the QAM
108 may
concurrently receive the primary and secondary multicasts 312P and 312S prior
to such a
failure. In FIG. 3B, the QAM 108 does not join the secondary multicast 312S
until a
failure is identified for the primary multicast 312P.
[39] Next, in block 405b, the QAM 108 may join a primary multicast 312P. In an
example
embodiment, the QAM 108 may configure two of its video interface inputs (e.g.,
X and
Z) to respectively receive the primary and secondary multicasts 312P and 312S
via the
primary and secondary paths. Once configured, the QAM 108 may communicate a
join
request 308A to the source 104 via the network 101 to join the primary
multicast 312P,
but does not yet request to join the secondary multicast 312S. The QAM 108 may
also
communicate an ERM program setup response 310 to the ERM 102, but may or might

not include a multicast transport header for the primary multicast 312P and
the video
interface inputs configured to receive multicast 312P. The ERM 102 also might
not
respond to the ERM program setup request 310 from the QAM 108 when operating
in
pessimistic mode until receiving a multicast transporting the requested video.
[40] Next, in block 406b, the client device 110 may receive the program. In an
example
embodiment, the source 104 may provide the primary multicast 312P of the
requested
program to the head end 150 via the network 101. The QAM 108 may detect
primary
multicast 312P on the video interface input specified in the join request 308,
and may
forward the primary multicast 312P to the client device 110. In response to
initially
detecting receipt of multicast 312P, the QAM 108 may send an announce message
314 to
the ERM 102 including a multicast header of the primary multicast 312P. The
ERM 102
16
CA 3003209 2018-04-30

may then send an announce response 316 to the QAM 108 and respond to the SDVSM

103 with an SDVSM program setup response 318. The SDVSM 103 may communicate
the program confirm message 320 in response to the SDVSM program setup
response
318, as discussed above.
[41] Next, in block 407b, the QAM 108 may detect a failure of the primary
multicast, in the
same manner as discussed above with regard to block 407a.
[42] In block 408b, in response to detecting the failure, the QAM 108 may join
the secondary
multicast 312S, and may communicate a second join request 308B to the source
104.
The second join request 308B may specify the video interface input (e.g.,
input Z)
previously allocated in block 405b to receive the secondary multicast 312S.
The QAM
108 may then receive the secondary multicast 312S from the source 104 over the

secondary path.
[43] In block 409b, once joined to the secondary multicast 312S, the QAM 108
may then fail
over to the secondary multicast 312S via the secondary path, and may output
the
secondary multicast 312S to the client device 110. The QAM 108 may also
communicate
an announce failover message 322 to the ERM 102 that includes the multicast
transport
header of the secondary multicast 312S. The ERM 102 may send an announce
response
316 to the QAM 108 and respond to the SDVSM 103 with an SDVSM program setup
response 318.
[44] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3B, the
QAM 108
17
CA 3003209 2018-04-30

may not communicate announce message 314 and may not receive announce response

316 from the ERM 102. Instead, upon detecting the failure, the QAM 108 may
send join
request 308B to the source 104, and may begin receiving the secondary
multicast 312S.
The QAM 108 may forward the secondary multicast 312S to the client device 110,
and
may communicate the announce failover message 322 to the ERM 102. The ERM 102
may respond with the announce failover response 324 and may communicate the
SDVSM program setup response 318 to the SDVSM 103. The SDVSM 103 may then
communicate the program confirm message 320 to the client device 110, as
discussed
above.
Dual-Source Multicast, Concurrent Join
[45] Referring again to FIG. 4, in block 403, the ERM may alternatively
determine a join type
of a dual-source multicast, concurrent join for a requested program, and so in
block 404c,
the ERM 102 may request the dual-source multicast, concurrent join, which is
also
described in FIG. 3C. FIG. 3C differs from FIGS. 3A-B by including two
different
sources 104A and 104B providing the primary and secondary multicasts 312P and
312S,
respectively, instead of a single source providing both the primary and
secondary
multicasts 312P, 312S.
[46] In block 405c, in this case the QAM 108 may join primary and secondary
multicasts
312P and 312S, respectively, being provided by different sources 104A and
104B. In an
example embodiment, the QAM 108 may configure two of its video interface
inputs (e.g.,
X and Z) to respectively receive the multicasts 312P and 312S via the primary
and
secondary paths. As above, the multicasts 312P and 312S may transport the same

program, even though the program is being received from different sources 104A
and
18
CA 3003209 2018-04-30

104B. Alternatively, the multicasts 312P and 312S may be related to each
other, such as
one being a national advertising version of a video program and the other
being a local
advertising version of the same video program. Once the video interface inputs
are
configured, the QAM 108 may communicate join request 308A to source 104A and
join
request 308B to source 104B. Each join request 308A and 308B may specify the
multicast to join and a video interface input over which to receive the
multicast. The
QAM 108 may also communicate an ERM program setup response 310 to the ERM 102,

but may or might not include multicast transport headers for each of the
primary and
secondary multicasts 312P and 312S and the video interface inputs configured
to receive
multicasts 312P and 312S. The ERM 102 also might not respond to the ERM
program
setup request 310 from the QAM 108 when operating in pessimistic mode until
receiving
a multicast transporting the requested video.
[47] In block 406c, the client device 110 may receive the video program. In an
illustrative
embodiment, the source 104A may provide the primary multicast 312P of the
requested
program to the head end 150 via the network 101. The source 104B may also
provide the
secondary multicast 312S of the requested program to the head end 150 via the
network
101. The QAM 108 may detect the primary multicast 312P on its video interface
input
specified in the join request 308A, and may forward the primary multicast 312P
to the
client device 110. In response to initially detecting receipt of multicasts
312P and 312S,
the QAM 108 may send an announce message 314 to the ERM 102 including a
multicast
header for each of the successfully joined multicasts 312P and 312S. The ERM
102 may
send an announce response 316 to the QAM 108 and respond to the SDVSM 103 with
an
SDVSM program setup response 318. The SDVSM 103 may communicate the program
19
CA 3003209 2018-04-30

confirm message 320 in response to the SDVSM program setup response 318, as
discussed above.
[48] In block 407c, the QAM 108 may detect a failure, in a manner as already
described
above.
[49] In block 409c, in response to detecting a failure, the QAM 108 may fail
over to the
secondary multicast, and may output the secondary multicast 312S to the client
device
110. The QAM 108 may also communicate an announce failover message 322 to the
ERM 102 that includes the multicast transport header of the secondary
multicast 312S.
The ERM 102 may respond with an announce failover response 324.
[50] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3C, the
QAM 108
may not communicate announce message 314 and may not receive announce response

316. Instead, upon detecting the failure, the QAM 108 may forward the
secondary
multicast 312S to the client device 110, and may communicate the announce
failover
message 322 to the ERM 102. The ERM 102 may respond with the announce failover

response 324 and may communicate the SDVSM program setup response 318 to the
SDVSM 103. The SDVSM 103 may then communicate the program confirm message
320 to the client device 110, as discussed above.
Dual-Source Multicast, Serial Join
[51] Referring again to FIG. 4, in block 403, the ERM may determine a join
type of a dual-
source multicast, serial join for a requested program, and so in block 404d,
the ERM 102
CA 3003209 2018-04-30

may request QAM 108 set up the dual-source multicast, serial join, which is
also
described in FIG. 3D. In FIG. 3D, the ERM 102 may, for example, communicate a
QAM
program setup request 306 identifying a join type instructing the QAM 108 to
set up a
dual-source multicast, serial join.
[52] In block 405d, the QAM 108 may join a primary multicast 312P via a
primary path. In
an example embodiment, the QAM 108 may configure two of its video interface
inputs
(e.g., X and Z) to respectively receive the multicast via the primary and
secondary paths.
Once configured, the QAM 108 may communicate a join request 308A to the source

104A via the network 101 specifying the multicast to join and a video
interface input
(e.g., input X). The QAM 0108 may also communicate an ERM program setup
response
310 to the ERM 102, but may or might not include a multicast transport header
for the
primary multicast 312P and the video interface input configured to receive the
multicast
312P. The ERM 102 also might not respond to the ERM program setup request 310
from
the QAM 108 when in pessimistic mode until receiving a multicast transporting
the
requested video.
[53] In block 406d, the client device 110 may receive the program. In an
example
embodiment, the source 104 may provide the primary multicast 312P of the
requested
program to the head end 150 via the network 101. The QAM 108 may detect data
of the
primary multicast 312P on the video interface input specified in the join
request 308A,
and may forward the primary multicast 312P to the client device 110. In
response to
initially detecting receipt of multicast 312P, the QAM 108 may send an
announce
message 314 to the ERM 102 including a multicast header of primary multicast
312P.
The ERM 102 may also send an announce response 316 to the QAM 108 and respond
to
21
CA 3003209 2018-04-30

the SDVSM 103 with an SDVSM program setup response 318. The SDVSM 103 may
communicate the program confirm message 320 in response to the SDVSM program
setup response 318, as discussed above.
[54] In block 407d, the QAM 108 may detect a failure, in a manner as already
discussed
above.
[55] In block 408d, and in response to detecting the failure, the QAM 108 may
join the
secondary multicast 312S, and may communicate a second join request 308B to
the
source 104B. The second join request 308B may specify the video interface
input (e.g.,
input Z) previously allocated in block 405d to receive the secondary multicast
312S. The
QAM 108 may then receive the secondary multicast 312S from source 104B.
[56] In block 409d, the QAM 108 may fail over to the secondary multicast, and
may output
the secondary multicast 312S to the client device 110. The QAM 108 may also
communicate an announce failover message 322 to the ERM 102 that includes the
multicast transport header of the secondary multicast 312S. The ERM 102 may
respond
with an announce failover response 324.
[57] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3D, the
QAM 108
may not communicate announce message 314 and may not receive announce response

316. Instead, upon detecting the failure, the QAM 108 may send join request
308B to the
source 104B, and may begin receiving the secondary multicast 312S. The QAM 108
may
forward the secondary multicast 312S to the client device 110, and may
communicate the
22
CA 3003209 2018-04-30

announce failover message 322 to the ERM 102. The ERM 102 may respond with the

announce failover response 324 and may communicate the SDVSM program setup
response 318 to the SDVSM 103. The SDVSM 103 may communicate the program
confirm message 320 to the client device 110, as discussed above.
[58] One or more aspects of the above examples may be embodied in computer-
executable
instructions, such as in one or more program modules, executed by one or more
computers or other devices such as by any of the blocks in Fig. 1. Generally,
program
modules include routines, programs, objects, components, data structures, etc.
that
perform particular tasks or implement particular abstract data types when
executed by a
processor in a computer or other device. The computer executable instructions
may be
stored on a computer readable medium such as a hard disk, optical disk,
removable
storage media, solid state memory, RAM, etc. As will be appreciated by one of
skill in
the art, the functionality of the program modules may be combined or
distributed as
desired in various embodiments. In addition, the functionality may be embodied
in
whole or in part in firmware or hardware equivalents such as integrated
circuits, field
programmable gate arrays (FPGA), application specific integrated circuits
(ASIC), and
the like.
[59] While embodiments have been described with respect to specific examples
including
presently preferred modes of carrying out the invention, those skilled in the
art will
appreciate that there are numerous variations and permutations of the above
described
systems and techniques. Thus, the spirit and scope of the invention should be
construed
broadly as set forth in the appended claims.
23
CA 3003209 2018-04-30

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2023-11-28
(22) Filed 2009-11-06
(41) Open to Public Inspection 2011-05-06
Examination Requested 2018-04-30
(45) Issued 2023-11-28

Abandonment History

There is no abandonment history.

Maintenance Fee

Last Payment of $263.14 was received on 2023-10-27


 Upcoming maintenance fee amounts

Description Date Amount
Next Payment if small entity fee 2024-11-06 $253.00
Next Payment if standard fee 2024-11-06 $624.00

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Request for Examination $800.00 2018-04-30
Application Fee $400.00 2018-04-30
Maintenance Fee - Application - New Act 2 2011-11-07 $100.00 2018-04-30
Maintenance Fee - Application - New Act 3 2012-11-06 $100.00 2018-04-30
Maintenance Fee - Application - New Act 4 2013-11-06 $100.00 2018-04-30
Maintenance Fee - Application - New Act 5 2014-11-06 $200.00 2018-04-30
Maintenance Fee - Application - New Act 6 2015-11-06 $200.00 2018-04-30
Maintenance Fee - Application - New Act 7 2016-11-07 $200.00 2018-04-30
Maintenance Fee - Application - New Act 8 2017-11-06 $200.00 2018-04-30
Maintenance Fee - Application - New Act 9 2018-11-06 $200.00 2018-10-17
Maintenance Fee - Application - New Act 10 2019-11-06 $250.00 2019-10-22
Maintenance Fee - Application - New Act 11 2020-11-06 $250.00 2020-10-30
Notice of Allow. Deemed Not Sent return to exam by applicant 2021-04-20 $408.00 2021-04-20
Maintenance Fee - Application - New Act 12 2021-11-08 $255.00 2021-10-29
Maintenance Fee - Application - New Act 13 2022-11-07 $254.49 2022-10-28
Final Fee $306.00 2023-10-10
Maintenance Fee - Application - New Act 14 2023-11-06 $263.14 2023-10-27
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
COMCAST CABLE COMMUNICATIONS, LLC
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Examiner Requisition 2020-03-10 4 187
Amendment 2020-07-06 17 663
Claims 2020-07-06 6 215
Withdrawal from Allowance / Amendment 2021-04-20 13 507
Claims 2021-04-20 11 439
Examiner Requisition 2021-05-20 3 171
Amendment 2021-05-20 24 1,011
Claims 2021-05-20 11 398
Examiner Requisition 2021-08-20 5 192
Prosecution Correspondence 2021-09-17 2 30
Office Letter 2021-10-26 1 143
Amendment 2021-12-20 16 562
Claims 2021-12-20 11 411
Examiner Requisition 2022-08-15 3 169
Amendment 2022-12-15 24 869
Claims 2022-12-15 11 542
Abstract 2018-04-30 1 13
Description 2018-04-30 23 883
Claims 2018-04-30 10 352
Drawings 2018-04-30 7 119
Divisional - Filing Certificate 2018-06-14 1 147
Representative Drawing 2018-08-31 1 9
Cover Page 2018-09-17 2 41
Amendment 2018-10-25 1 30
Examiner Requisition 2019-02-20 3 192
Amendment 2019-08-20 20 696
Claims 2019-08-20 7 247
Final Fee 2023-10-10 4 91
Representative Drawing 2023-10-26 1 11
Cover Page 2023-10-26 1 41
Electronic Grant Certificate 2023-11-28 1 2,527