throbber
successful in locating a fully connected process on that portal computer, then the routine
`
`continues at block 805, else the routine returns an unsuccessful indication.
`
`In decision block
`
`805, if no portal computer other than the portal computer on which the process is executing
`
`was located, then this is the first process to fully connect to broadcast channel and the
`
`5
`
`routine continues at block 806, else the routine continues at block 808.
`
`In block 806, the
`
`routine invokes the achieve connection routine to change the state of this process to fully
`
`connected.
`
`In block 807, the routine installs the external dispatcher for processing messages
`
`received through this process’ external port for the passed channel type and channel instance.
`
`When a message is received through that external port, the external dispatcher is invoked.
`
`10
`
`The routine then returns.
`
`In block 808, the routine installs an external dispatcher.
`
`In block
`
`809, the routine invokes the connect request routine to initiate the process of identifying
`
`neighbors for the seeking computer. The routine then returns.
`
`Figure 9 is a flow diagram illustrating the processing of the seek portal
`
`computer routine in one embodiment. This routine is passed the channel type and channel
`
`15
`
`instance of the broadcast channel to which this process wishes to connect. This routine, for
`
`each search depth (e.g., port number), checks the portal computers at that search depth.
`
`If a
`
`portal computer is located at that search depth with a process that is fully connected to the
`
`broadcast channel, then the routine returns an indication of success.
`
`In blocks 902-911, the
`
`routine loops selecting each search depth until a process is located.
`
`In block 902, the routine
`
`20
`
`25
`
`30
`
`selects the next search depth using a port number ordering algorithm.
`In decision block 903,
`if all the search depths have already been selected during this execution of the loop, that is
`for the currently selected depth, then the routine returns a failure indication, else the routine
`continues at block 904.
`In blocks 904-911, the routine loops selecting each portal computer
`and determining whether a process of that portal computer is connected to (or attempting to
`connect to) the broadcast channel with the passed channel type and channel instance.
`In
`block 904, the routine selects the next portal computer.
`In decision block 905, if all the
`portal computers have already been selected, then the routine loops to block 902 to select the
`next search depth, else the routine continues at block 906.
`In block 906, the routine dials the
`selected portal computer through the port represented by the search depth.
`In decision block
`907, if the dialing was successful, then the routine continues at block 908, else the routine
`loops to block 904 to select the next portal computer. The dialing will be successful if the
`dialed port is the call-in port of the broadcast channel of the passed charmel type and channel
`[03004-800l/Sb003728.268]
`-26-
`7,3,“
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 363 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 363 of 1442
`
`

`
`instance of a process executing on that portal computer.
`
`In block 908, the routine invokes a
`
`contact process routine, which contacts the answering process of the portal computer through
`
`the dialed port and determines whether that process is fully connected to the broadcast
`
`charmel.
`
`In block 909, the routine hangs up on the selected portal computer.
`
`In decision
`
`5
`
`block 910, if the answering process is fully connected to the broadcast channel, then the
`
`routine returns a success indicator, else the routine continues at block 911.
`
`In block 911, the
`
`routine invokes the check for external call routine to determine whether an external call has
`
`been made to this process as a portal computer and processes that call. The routine then
`
`loops to block 904 to select the next portal computer.
`
`10
`
`Figure 10 is a flow diagram illustrating the processing of the contact process
`
`routine in one embodiment. This routine determines whether the process of the selected
`
`portal computer that answered the call-in to the selected port is fully connected to the
`
`broadcast channel.
`
`In block 1001,
`
`the routine sends an external message (i. e.,
`
`seeking_connection_ca1l) to the answering process indicating that a seeking process wants to
`
`is
`
`know whether the answering process is frilly connected to the broadcast charmel.
`
`In block
`
`1002, the routine receives the external response message from the answering process.
`
`In
`
`decision block 1003,
`
`if the external
`
`response message is successfully received (i. e.,
`
`seel<ing_connection_resp), then the routine continues at block 1004, else the routine retums.
`
`Wherever the broadcast component requests to receive an external message, it sets a time out
`
`20
`
`period.
`
`If the external message is not received within that time out period, the broadcaster
`
`component checks its own call-in port to see if another process is calling it. In particular, the
`
`dialed process may be calling the dialing process, which may result in a deadlock situation.
`
`If the expected
`The broadcaster component may repeat the receive request several times.
`message is not received, then the broadcaster component handles the error as appropriate.
`In
`decision block 1004, if the answering process indicates in its response message that it is fully
`connected to the broadcast channel, then the routine continues at block 1005, else the routine
`continues at block 1006.
`In block 1005, the routine adds the selected portal computer to a
`list of connected portal computers and then returns.
`In block 1006, the routine adds the
`
`answering process to a list of fellow seeking processes and then returns.
`
`Figure 11 is a flow diagram illustrating the processing of the connect request
`routine in one embodiment. This routine requests a process of a portal computer that was
`identified as being fully connected to the broadcast channel to initiate the connection of this
`
`[03004-800]/SLOO3728.268]
`
`-27-
`
`751,00
`
`25
`
`30
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 364 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 364 of 1442
`
`

`
`process to the broadcast channel.
`
`In decision block 1101, if at least one process of a portal
`
`computer was located that is frilly connected to the broadcast charmel, then the routine
`
`continues at block 1103, else the routine continues at block 1102. A process of the portal
`
`computer may no longer be in the list if it recently disconnected from the broadcast channel.
`
`5
`
`In one embodiment, a seeking computer may always search its entire search depth and find
`
`multiple portal computers through which it can connect to the broadcast channel.
`
`In block
`
`1102, the routine restarts the process of connecting to the broadcast channel and returns.
`
`In
`
`block 1103, the routine dials the process of one of the found portal computers through the
`
`call-in port.
`
`In decision block 1104, if the dialing is successful, then the routine continues at
`
`10
`
`block 1105, else the routine continues at block 1113. The dialing may be unsuccessful if, for
`
`example, the dialed process recently disconnected from the broadcast charmel.
`
`In block
`
`1105, the routine sends an external message to the dialed process requesting a connection to
`
`the broadcast channel (i. e., connection_request_call).
`
`In block 1106, the routine receives the
`
`response message (i.e., connection_request_resp).
`
`In decision block 1107, if the response
`
`15 message is successfully received, then the routine continues at block 1108, else the routine
`
`continues at block 1113.
`
`In block 1108, the routine sets the expected number of holes (i. e.,
`
`empty internal connections) for this process based on the received response. When in the
`
`large regime. the expected number of holes is zero. When in the small regime, the expected
`
`number of holes varies from one to three.
`
`In block 1109, the routine sets the estimated
`
`20
`
`diameter of the broadcast channel based on the received response.
`
`In decision block 1111, if
`
`the dialed process is ready to connect to this process as indicated by the response message,
`then the routine continues at block 1112, else the routine continues at block 1113.
`In block
`
`the routine invokes the add neighbor routine to add the answering process as a
`1112,
`neighbor to this process. This adding of the answering process typically occurs when the
`broadcast channel is in the small regime. When in the large regime, the random walk search
`for a neighbor is performed.
`In block 1113, the routine hangs up the external connection
`with the answering process computer and then retums.
`
`Figure 12 is a flow diagram of the processing of the check for external call
`routine in one embodiment. This routine is invoked to identify whether a fellow seeking
`process is attempting to establish a connection to the broadcast channel through this process.
`In block 1201, the routine attempts to answer a call on the call-in port.
`In decision block
`1202, if the answer is successful, then the routine continues at block 1203, else the routine
`I03004-800llSI.D03728.268]
`-28-
`751,00
`
`25
`
`30
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 365 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 365 of 1442
`
`

`
`returns.
`
`In block 1203, the routine receives the external message from the external port.
`
`In
`
`decision block 1204, if the type of the message indicates that a seeking process is calling
`
`(i.e., seeking_connection_call), then the routine continues at block 1205, else the routine
`
`returns. In block 1205, the routine sends an external message (i.e., seeking_connection_resp)
`
`5
`
`to the other seeking process indicating that this process is also is seeking a connection.
`
`In
`
`decision block 1206, if the sending of the external message is successful, then the routine
`
`continues at block 1207, else the routine returns.
`
`In block 1207, the routine adds the other
`
`seeking process to a list of fellow seeking processes and then returns. This list may be used
`
`if this process can find no process that is fully connected to the broadcast channel.
`
`In which
`
`10
`
`case,
`
`this process may check to see if any fellow seeking process were successful
`
`in
`
`connecting to the broadcast charmel. For example, a fellow seeking process may become the
`
`first process fully connected to the broadcast channel.
`
`Figure 13 is a flow diagram of the processing of the achieve connection routine
`
`in one embodiment. This routine sets the state of this process to fully connected to the
`
`is
`
`broadcast channel and invokes a callback routine to notify the application program that the
`
`process is now fully connected to the requested broadcast channel.
`
`In block 1301, the
`
`routine sets the connection state of this process to fully connected.
`
`In block 1302,
`
`the
`
`routine notifies fellow seeking processes that it is fully connected by sending a connected
`
`external message to them (i.e., connected_snnt).
`
`In block 1303, the routine invokes the
`
`20
`
`connect callback routine to notify the application program and then retums.
`
`Figure 14 is a flow diagram illustrating the processing of the external
`
`dispatcher routine in one embodiment. This routine is invoked when the external port
`receives a message. This routine retrieves the message, identifies the external message type,
`and invokes the appropriate routine to handle that message. This routine loops processing
`each message until all the received messages have been handled.
`In block 1401, the routine
`
`In decision
`answers (e.g., picks up) the external port and retrieves an external message.
`block 1402, if a message was retrieved, then the routine continues at block 1403, else the
`routine hangs up on the external port in block 1415 and returns.
`In decision block 1403, if
`the message type is for a process seeking a connection (i. e., seeking_connection_ca.ll), then
`the routine invokes the handle seeking connection call routine in block 1404, else the routine
`continues at block 1405.
`In decision block 1405, if the message type is for a connection
`request call (i. e., connection_request_call), then the routine invokes the handle connection
`
`[03004-8001/SLO03728368]
`
`-29-
`
`7mm
`
`25
`
`30
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 366 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 366 of 1442
`
`

`
`request call routine in block 1406, else the routine continues at block 1407.
`
`In decision
`
`block 1407, if the message type is edge proposal call (i.e., edge_proposal_call), then the
`
`routine invokes the handle edge proposal call routine in block 1408, else the routine
`
`continues at block 1409.
`
`In decision block 1409, if the message type is port connect call
`
`5
`
`(i. e., port_connect_call), then the routine invokes the handle port connection call routine in _
`
`block 1410, else the routine continues at block 1411.
`
`In decision block 1411, if the message
`
`type is a connected statement
`
`(i.e., connected__strnt),
`
`the routine invokes the handle
`
`connected statement in block 1112, else the routine continues at block 1212.
`
`In decision
`
`block 1412, if the message type is a condition repair statement (i. e., condition_repair_stmt),
`
`10
`
`then the routine invokes the handle condition repair routine in block 1413, else the routine
`
`loops to block 1414 to process the next message. After each handling routine is invoked, the
`
`routine loops to block 1414.
`
`In block 1414, the routine hangs up on the external port and
`
`continues at block 1401 to receive the next message.
`
`Figure 15 is a flow diagram illustrating the processing of the handle seeking
`
`15
`
`connection call routine in one embodiment. This routine is invoked when a seeking process
`
`is calling to identify a portal computer through which it can connect to the broadcast channel.
`
`In decision block 1501, if this process is currently fully connected to the broadcast charmel
`
`identified in the message, then the routine continues at block 1502, else the routine continues
`
`at block 1503.
`
`In block 1502, the routine sets a message to indicate that this process is fully '
`
`20
`
`connected to the broadcast channel and continues at block 1505.
`
`In block 1503, the routine
`
`sets a message to indicate that this process is not fully connected.
`
`In block 1504, the routine
`
`adds the identification of the seeking process to a list of fellow seeking processes.
`If this
`process is not fully connected, then it is attempting to connect to the broadcast charmel.
`In _
`block 1505, the routine sends the external message response (i. e., seeking_.connection_resp)
`to the seeking process and then returns.
`
`Figure 16 is a flow diagram illustrating processing of the handle connection
`
`request call routine in one embodiment. This routine is invoked when the calling process
`wants this process to initiate the connection of the process to the broadcast charmel. This
`
`routine either allows the calling process to establish an internal connection with this process
`(e.g., if in the small regime) or starts the process of identifying a process to which the calling
`process can connect.
`In decision block 1601, if this process is currently fully connected to
`the broadcast channel, then the routine continues at block 1603, else the routine hangs up on
`|o3oo4.soo1/sLoo372s.2ss]
`-30-
`7,3,,oo
`
`25
`
`30
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 367 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 367 of 1442
`
`

`
`the external port in block 1602 and returns.
`
`In block 1603, the routine sets the number of
`
`holes that the calling process should expect in the response message.
`
`In block 1604, the
`
`routine sets the estimated diameter in the response message.
`
`In block 1605, the routine
`
`indicates whether this process is ready to connect to the calling process. This process is
`
`5
`
`ready to connect when the number of its holes is greater than zero and the calling process is
`
`not a neighbor of this process.
`
`In block 1606, the routine sends to the calling process an
`
`external message
`
`that
`
`is
`
`responsive
`
`to
`
`the
`
`connection
`
`request
`
`call
`
`(i.e.,
`
`connection__request_resp).
`
`In block 1607, the routine notes the number of holes that the
`
`calling process needs to fill as indicated in the request message.
`
`In decision block 1608, if
`
`10
`
`this process is ready to connect to the calling process, then the routine continues at block
`
`1609, else the routine continues at block 1611.
`
`In block 1609, the routine invokes the add
`
`neighbor routine to add the calling process as a neighbor.
`
`In block 1610,
`
`the routine
`
`decrements the number of holes that the calling process needs to fill and continues at block
`
`15
`
`1611.
`In block 1611, the routine hangs up on the external port.
`In decision block 1612, if
`this process has no holes or the estimated diameter is greater. than one (i.e.,
`in the large
`regime), then the routine continues at block 1613, else the routine continues at block 1616.
`
`In blocks 1613-1615, the routine loops forwarding a request for an edge through which to
`connect to the calling process to the broadcast channel. One request is forwarded for each
`pair of holes of the calling process that needs to be filled.
`In decision block 1613, if the
`number of holes of the calling process to be filled is greater than or equal to two, then the
`routine continues at block 1614, else the routine continues at block 1616.
`In block 1614, the
`routine invokes the forward connection edge search routine. The invoked routine is passed
`to an indication of the calling process and the random walk distance. In one embodiment, the
`distance is twice in the estimated diameter of the broadcast channel.
`In block 1614, the
`routine decrements the'holes left to fill by two and loops to block 1613.
`In decision block
`1616, if there is still a hole to fill, then the routine continues at block 1617, else the routine
`returns.
`In block 1617, the routine invokes the fill hole routine passing the identification of
`
`20
`
`25
`
`30
`
`process can connect to the broadcast channel. The routine then returns.
`
`Figure 17 is a flow diagram illustrating the processing of the add neighbor
`routine in one embodiment. This routine adds the process calling on the external port as a
`[o3oo4.soo1/s1.oo372s.2ss)
`-3 1-
`7,, W,
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 368 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 368 of 1442
`
`

`
`neighbor to this process.
`
`In block 1701, the routine identifies the calling process on the
`
`external port.
`
`In block 1702, the routine sets a flag to indicate that the neighbor has not yet
`
`received the broadcast messages from this process. This flag is used to ensure that there are
`
`no gaps in the messages initially sent to the new neighbor. The external port becomes the
`
`5
`
`internal port for this connection.
`
`In decision block 1703, if this process is in the seeking
`
`connection state,
`
`then this process is connecting to its first neighbor and the routine
`
`continues at block 1704, else the routine continues at block 1705.
`
`In block 1704, the routine
`
`sets the connection state of this process to partially connected.
`
`In block 1705, the routine
`
`adds the calling process to the list of neighbors of this process.
`
`In block 1706, the routine
`
`10
`
`installs an internal dispatcher for the new neighbor. The internal dispatcher is invoked when
`
`a message is received from that new neighbor through the internal port of that new neighbor.
`
`In decision block 1707, if this process buffered up messages while not fully connected, then
`
`the routine continues at block 1708, else the routine continues at block 1709.
`
`In one
`
`embodiment, a process that is partially connected may buffer the messages that it receives
`
`15
`
`through an internal connection so that it can send these messages as it connects to new
`
`In block 1708, the routine sends the buflercd messages to the new neighbor
`neighbors.
`through the internal port.
`In decision block 1709, if the number of holes of this process
`
`equals the expected number of holes, then this process is fully connected and the routine
`
`continues at block 1710, else the routine continues at block 1711.
`
`In block 1710, the routine
`
`20
`
`In
`invokes the achieve connected routine to indicate that this process is fully connected.
`decision block 1711,
`if the number of holes for this process is zero,
`then the routine
`
`In block 1712, the routine deletes any
`continues at block 1712, else the routine returns.
`pending edges and then retums.- A pending edge is an edge that has been proposed to this
`process for edge pinning, which in this case is no longer needed.
`
`25
`
`30
`
`Figure 18 is a flow diagram illustrating the processing of the forward
`connection edge search routine in one embodiment. This routine is responsible for passing
`along a request to connect a requesting process to a randomly selected neighbor of this
`process through the internal port of the selected neighbor, that is part of the random walk.
`In
`decision block 1801, if the forwarding distance remaining is greater than zero, then the
`routine continues at block 1804, else the routine continues at block 1802.
`In decision block
`1802, if the number of neighbors of this process is greater than one, then the routine
`continues at block 1804, else this broadcast charmel is in the small regime and the routine
`[03004-800]/SLOO3728.268]
`-3 2-
`.,,,,,o°
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 369 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 369 of 1442
`
`

`
`continues at block 1803.
`
`In decision block 1803, if the requesting process is a neighbor of
`
`this process, then the routine returns, else the routine continues at block 1804.
`
`In blocks
`
`1804-1807, the routine loops attempting to send a connection edge search call internal
`
`message (i. e., connection_edge_search_call) to a randomly selected neighbor. In block 1804,
`
`5
`
`thedroutine randomly selects a neighbor of this process.
`
`In decision block 1805, if all the
`
`neighbors of this process have already been selected, then the routine cannot forward the
`
`message and the routine returns, else the routine continues at block 1806.
`
`In block 1806, the
`
`routinesends a connection edge search call intemal message to the selected neighbor.
`
`In
`
`decision block 1807, if the sending of the message is successful, then the routine continues at
`
`10
`
`block 1808, else the routine loops to block 1804 to select the next neighbor.
`
`.When the
`
`sending of an internal message is unsuccessful, then the neighbor may have disconnected.
`from the broadcast charmel in an unplanned manner. Whenever such a situation is detected \
`by the broadcaster component, it attempts to find another neighbor by invoking the fill holes
`
`routine to fill a single hole or the forward connecting edge search routine to fill two holes. In
`
`15
`
`block 1808, the routine notes that the recently sent connection edge search call has not yet
`
`been acknowledged and indicates that the edge to this neighbor is reserved if the remaining
`
`forwarding distance is less than or equal to one.
`
`It is reserved because the selected neighbor
`
`may offer this edge to the requesting process for edge pinning. The routine then returns.
`
`Figure 19 is a flow diagram illustrating the processing of the handle edge
`
`20
`
`proposal call routine. This routine is invoked when a message is received from a proposing
`
`process that proposes to connect an edge between the proposing process and one of its
`
`neighbors to this process for edge pinning.
`
`In decision block 1901, if the number of holes of
`
`this process minus the number of pending edges is greater than or equal to one, then this
`
`process still has holes to be filled and the routine continues at block 1902, else the routine
`
`25
`
`continues at block 1911. In decision block 1902, if the proposing process or its neighbor is a
`neighbor of this process, then the routine continues at block 1911, else the routine continues
`
`30
`
`at block 1903. In block 1903, the routine indicates that the edge is pending between this
`process and the proposing process.
`In decision block 1904, if a proposed neighbor is already
`pending as a proposed neighbor, then the routine continues at block 1911, else the routine
`continues at block 1907.
`In block 1907, the routine sends an edge proposal response as an
`external message to the proposing process (i. e., edge_proposal_resp) indicating that the
`proposed edge is accepted.
`In decision block 1908, if the sending of the message was
`[o3oo4-soot/si.oo372s.26s]
`-33-
`7mm
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 370 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 370 of 1442
`
`

`
`successful, then the routine continues at block 1909, else the routine returns.
`
`In block 1909,
`
`In block 1910, the routine invokes the add
`the routine adds the edge as a pending edge.
`neighbor routine to add the proposing process on the external port as a neighbor. The routine
`
`then returns. In block 1911, the routine sends an external message (i.e., edge_proposal_resp)
`
`5
`
`indicating that this proposed edge is not accepted.
`
`In decision block 1912, if the number of
`
`holes is odd, then the routine continues at block 1913, else the routine returns.
`
`In block
`
`1913, the routine invokes the fill hole routine and then returns.
`
`Figure 20 is a flow diagram illustrating the processing of the handle port
`
`connection call routine in one embodiment. This routine is invoked when an external
`
`10 message is received then indicates that the sending process wants to connect to one hole of
`
`this process.
`
`In decision block 2001, if the number of holes of this process is greater than
`
`zero, then the routine continues at block 2002, else the routine continues at block 2003.
`
`In
`
`decision block 2002, if the sending process is not a neighbor, then the routine continues at
`
`In block 2003, the routine sends a port
`block 2004, else the routine continues to block 2003.
`connection response external message (i. e., port_connection_resp) to the sending process that
`
`15
`
`indicates that it is not okay to connect to this process. The routine then returns.
`
`In block
`
`20
`
`25
`
`30
`
`2004, the routine sends a port connection response external message to the sending process
`that indicates that is okay to connect this process.
`In decision block 2005, if the sending of
`the message was successful,
`then the routine continues at block 2006, else the routine
`
`In block 2006, the routine invokes the add neighbor routine to add
`continues at block 2007.
`the sending process as a neighbor of this process and then returns.
`In block 2007, the routine
`hangs up the external connection.
`In block 2008, the routine invokes the connect request
`routine to request that a process connect to one of the holes of this process. The routine then
`returns.
`
`Figure 21 is a flow diagram illustrating the processing of the till hole routine in
`one embodiment. This routine is passed an indication of the requesting process.
`If this
`process is requesting to fill a hole, then this routine sends an internal message to other
`processes. If another process is requesting to fill a hole, then this routine invokes the routine
`to handle a connection port search request.
`In block 2101,
`the routine initializes a
`connection port search statement internal message (i. e., connection_port_search_stmt).
`In
`decision block 2102, if this process is the requesting process, then the routine continues at
`block 2103, else the routine continues at block 2104.
`In block 2103, the routine distributes
`[D3004-800lISU)03728.268]
`-34-
`7,,,,,,°
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 371 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 371 of 1442
`
`

`
`the message to the neighbors of this process through the internal ports and then retums.
`
`In
`
`block 2104, the routine invokes the handle connection port search routine and then returns.
`
`Figure 22 is a flow diagram illustrating the processing of the internal dispatcher
`
`routine in one embodiment. This routine is passed an indication of the neighbor who sent the
`
`5
`
`internal message.
`
`In block 2201, the routine receives the internal message. This routine
`
`identifies the message type and invokes the appropriate routine to handle the message.
`
`In
`
`block 2202, the routine assesses whether to change the estimated diameter of the broadcast
`
`charmel based on the information in the received message.
`
`In decision block 2203, if this
`
`process is the originating process of the message or the message has already been received
`
`10
`
`(i. e., a duplicate), then the routine ignores the message and continues at block 2208, else the
`
`routine continues at block 2203A.
`
`In decision block 2203A, if the process is partially
`
`connected, then the routine continues at block 2203B, else the routine continues at block
`
`2204.
`
`In block 2203B, the routine adds the message to the pending connection buffer and
`
`continues at block 2204.
`
`In decision blocks 2204-2207, the routine decodes the message
`
`15
`
`type and invokes the appropriate routine to handle the message. For example, in decision
`
`block 2204, if the type of the message is broadcast statement (i. e., broadcast__strnt), then the
`
`roufine invokes the handle broadcast message routine in block 2205. After invoking the
`
`appropriate handling routine, the routine continues at block 2208.
`
`In decision block 2208, if
`
`the partially connected buffer is full, then the routine continues at block 2209, else the
`
`20
`
`routine continues at block 2210.
`
`The broadcaster component collects all
`
`its internal
`
`messages in a buffer while partially connected so that it can forward the messages as it
`connects to new neighbors.
`If, however, that bufier becomes full, then the process assumes
`that it is now fully connected and that the expected number of connections was too high,
`
`because the broadcast charmel is now in the small regime. In block 2209, the routine invokes
`
`25
`
`the achieve connection routine and then continues in block 2210.
`
`In decision block 2210, if
`
`the application program message queue is empty, then the routine returns, else the routine
`
`In block 2212, the routine invokes the receive response routine
`continues at block 2212.
`passing the acquired message and then retums. The received response routine is a callback
`
`routine of the application program.
`
`30
`
`Figure 23 is a flow diagram illustrating the processing of the handle broadcast
`message routine in one embodiment. This routine is passed an indication of the originating
`process, an indication of the neighbor who sent the broadcast message, and the broadcast
`
`-
`
`|o3oo4.soo|/smo372a.26s]
`
`-3 5-
`
`7,_,Wo
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 372 of 1442
`
`IPR2016-00726 -ACTIVISION, EA, TAKE-TWO, 2K, ROCKSTAR,
`Ex. 1102, p. 372 of 1442
`
`

`
`message itself,
`
`In block 2301, the routine performs the out of order processing for this
`
`message. The broadcaster component queues messages from each originating process until it
`
`can send them in sequence number order to the application program.
`
`In block 2302, the
`
`routine invokes the distribute broadcast message routine to forward the message to the
`
`5
`
`neighbors of this process.
`
`In decision block 2303, if a newly connected neighbor is waiting
`
`to receive messages, then the routine continues at block 2304, else the routine returns.
`
`In
`
`block 2304,
`
`the routine sends the messages in the correct order if possible for each
`
`originating process and then returns.
`
`Figure 24 is a flow diagram illustrating the processing of the distribute
`
`l0
`
`broadcast message routine in one embodiment. This routine sends the broadcast message to
`
`each of the neighbors of this process, except for the neighbor who sent the message to this
`
`process.
`
`In block 2401, the routine selects the next neighbor other than the neighbor who
`
`sent the message.
`
`In decision block 2402, if all such neighbors have already been selected,
`
`then the routine retums.
`
`In block 2403,
`
`the routine sends the message to the selected
`
`15
`
`neighbor and then loops to block 2401 to select the next neighbor.
`
`Figure 26 is a flow diagram illustrating the processing of the handle connection
`
`port search statement routine in one embodiment. This routine is passed an indication of the
`
`neighbor that sent the message and the message itself.
`
`In block 2601, the routine invokes the
`
`distribute internal message which sends the message to each of its neighbors other than the
`
`20
`
`In decision block 2602, if the number of hol

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket