throbber
US 8,639,267 B2
`
`73
`nology. While WDR 1100 contains field 1100e, field 1100d
`provides a standard and generic measurementfor evaluating
`WDRsfrom different location technologies, without concern
`for the location technology used. The highest confidence
`entries to a WDR queue 22 are used regardless of which
`location technology contributed to the WDR queue 22.
`
`LBX Configuration
`
`FIG. 12 depicts a flowchart for describing an embodiment
`of MSinitialization processing. Depending on the MS, there
`are many embodiments of processing when the MSis pow-
`ered on, started, restarted, rebooted, activated, enabled, or the
`like. FIG. 12 describes the blocks ofprocessing relevantto the
`present disclosure as part ofthatinitialization processing. Itis
`recommendedto first understand discussions of FIG. 19 for
`
`knowing threads involved, and variables thereof. Initializa-
`tion processing starts at block 1202 and continues to block
`1204 where the MS Basic Input Output System (BIOS) is
`initialized appropriately,then to block 1206 where other char-
`acter 32 processing is initialized, and then to block 1208 to
`check ifNTPis enabled for this MS. Block 1206 maystart the
`preferred numberoflisten/receive threads for feeding queue
`26 and the preferred numberof send threads for sending data
`inserted to queue 24, in particular when transmitting CK 1304
`embeddedin usual data 1302 and receiving CK 1304 or 1314
`embeddedin usual data 1302 or 1312, respectively. The num-
`ber of threads started should be optimalfor parallel process-
`ing across applicable channel(s). In this case, other character
`32 threads are appropriately altered for embedded CK pro-
`cessing (sending at first opportune outbound transmission;
`receiving in usual inbound transmission).
`If block 1208 determines NTPis enabled (as defaulted or
`last set by a user(i.e. persistent variable)), then block 1210
`initializes NTP appropriately and processing continues to
`block 1212. If block 1208 determines NTP was not enabled,
`then processing continues to block 1212. Block 1210 embodi-
`ments are well knownin the art ofNTP implementations(also
`see block 1626). Block 1210 may cause the starting of
`thread(s) associated with NTP. In some embodiments, NTP
`use is assumedin the MS. In other embodiments, appropriate
`NTPuseis not available to the MS. Depending on the NTP
`embodiment, thread(s) may pull time synchronization infor-
`mation, or may listen for and receive pushed time informa-
`tion. Resources 38 (or other MS local resource) provides
`interface to an MS clock for referencing, maintaining, and
`generating date/time stamps at the MS. After block 1210
`processing, the MSclock is synchronized to NTP. Because of
`initialization of the MSin FIG.12, block 1210 mayrely ona
`connected service to initially get the startup synchronized
`NTP date/time. MS NTP processing will ensure the NTP
`enabled/disabled variable is dynamically set as is appropriate
`(using semaphore access) because an MS maynot have con-
`tinuous clock source access during travel when needed for
`resynchronization. Ifthe MS does not have access to a clock
`source when needed, the NTP use variable is disabled. When
`the MShas(or again gets) access to a needed clock source,
`then the NTPuse variable is enabled.
`Thereafter, block 1212 creates shared memory to maintain
`data shared between processes/threads, block 1214 initializes
`persistent data to shared memory, block 1216 initializes any
`non-persistent data to shared memory (e.g. somestatistics
`14), block 1218 creates system queues, and block 1220 cre-
`ates semaphore(s) used to ensure synchronousaccess by con-
`current threads to data in shared memory, before continuing
`to block 1222. Shared memory data accesses appropriately
`utilize semaphore lock windows (semaphore(s) created at
`
`40
`
`45
`
`74
`block 1220) for proper access. In one embodiment, block
`1220 creates a single semaphore for all shared memory
`accesses, but this can deteriorate performance of threads
`accessing unrelated data. In the preferred embodiment, there
`is a semaphore for each reasonable set of data of shared
`memory soall threads are fully executing wheneverpossible.
`Persistent data is that data which maintains values during no
`power, for cxample as stored to persistent storage 60. This
`mayinclude data 8 (including permissions 10, charters 12,
`statistics 14, service directory 16), data 20, LBX history 30,
`data 36, resources 38, and/or other data. Persistent data pref-
`erably includes at least the DLMV (see DLM role(s) list
`Variable below), ILMV (see ILM role(s)list Variable below),
`process variables 19xx.-Max values (192x.=1902, 1912, 1922,
`1932, 1942 and 1952 (see FIG. 19 discussions below)) for the
`last configured maximum numberof threads to run in the
`respective process, process variables 19xx-PID values
`(19xx=1902, 1912, 1922, 1932, 1942 and 1952 (see FIG. 19
`discussions below)) for multi-purposeof: a) holding an Oper-
`ating System Process Identifier (1.e. O/S PID) for a process
`started; and b) whetheror not the respective process waslast
`enabled (i.e. PID>0) or disabled (i.e. PID <=0), the confi-
`dencefloor value (see FIG. 14A), the WTV(see Whereabouts
`Timeliness Variable (see FIG. 14A)), the NTP use variable
`(see FIG. 14A) for whether or not NTP waslast set to disabled
`or enabled (used at block 1208), and the Source Periodicity
`Time Period (SPTP) value (see FIG. 14B). There are reason-
`able defaults for each ofthe persistentdata priorto thefirst use
`of MS2 (e.g. NTP useis disabled, and only becomes enabled
`upon a successful enabling of NTPat least one time). Non-
`persistent data may include data involved in some regard to
`data 8 (and subsets of permissions 10, charters 12, statistics
`14, service directory 16), data 20, LBX history 30, data 36,
`resources 38, queues, semaphores, etc. Block 1218 creates
`queues 22, 24, and 26. Queues 1980 and 1990 are also created
`there if required. Queues 1980 and 1990 are not required
`when NTPis in use globally by participating data processing
`systems. Alternate embodiments may use less queues by
`threads sharing a queue and having a queue entry type field
`for directing the queue entry to the correct thread. Alternate
`embodiments may have additional queues for segregating
`entries of a queue disclosed for best possible performance.
`Other embodiments incorporate queuesfiguratively to facili-
`tate explanation of interfaces between processing.
`All queues disclosed herein are understood to have their
`own internally maintained semaphore for queue accesses so
`that queue insertion, peeking, accessing, etc uses the inter-
`nally maintained semaphore to ensure two or more concur-
`rently executing threads do not corrupt or misuse data to any
`queue. This is consistent with most operating system queue
`interfaces wherein a thread stays blocked (preempted) after
`requesting a queue entry until a queue entry appears in the
`queue. Also, no threads will collide with another thread when
`inserting, peeking, or otherwise accessing the same queue.
`Therefore, queues are implicitly semaphore protected. Other
`embodiments may use an explicit semaphore protected win-
`dow around queue data accessing, in which case those sema-
`phore(s) are created at block 1220.
`Thereafter, block 1222 checks for any ILM roles currently
`enabled for the MS (for example as determined from persis-
`tent storage of an ILM role(s) list Variable ILMV)preferably
`preconfigured for the MSat first use, or configured as last
`configured by a user of the MS). ILM roles are maintained to
`the ILM role(s) list Variable ILMV). The ILMV contains one
`or more entries for an ILM capability (role), each entry with
`a
`flag indicating whether
`it
`is
`enabled or disabled
`(marked=enabled, unmarked=disabled). If block 1222 deter-
`
`APPLE
`APPLE
`EXHIBIT 1001 - PAGE 0301
`EXHIBIT 1001 - PAGE 0301
`
`

`

`US 8,639,267 B2
`
`76
`process names of the enumerated set were processed, then
`block 1236 checks the DLMV (DLMrole(s)list Variable).
`Blocks 1228 through 1234 iterate every process nameof FIG.
`19 to make sure that each is started in accordance with non-
`zero 19xx-PID variable values at FIG. 12 initialization.
`
`Block 1236 checks for any DLM roles currently enabled
`for the MS (for example as determined from persistentstor-
`age of a DLMrole(s)list Variable (DLMV)preferably pre-
`configured for the MSat first use if the MS contains DLM
`capability). DLM capability (roles), whether on-boardat the
`MS, or determined during MStravels (see block 288),
`is
`maintained to the DLM role(s) list Variable (DLMV). The
`DLMV contains one or more entries for a DLM capability
`(role), each (role) entry with a flag indicating whetherit is
`enabled or disabled (marked=enabled, unmarked=disabled).
`If block 1236 determines there is at least one DLM role
`
`enabled(i.e. as marked by associated flag), then block 1238
`initializes enabled role(s) appropriately and processing con-
`tinues to block 1240. Block 1238 maycausethe starting of
`thread(s) associated with enabled DLM role(s), for DLM
`processing above (e.g. FIGS. 2A through 9B). Block 1238
`mayinvoke API(s), enable flag(s), or initialize as is appropri-
`ate for DLM processing described above. Such initializations
`are well known in the art of prior art DLM capabilities
`described above.If block 1236 determines there are no DLM
`roles to initialize at the MS, then processing continues to
`block 1240. Any of the FIG. 9A technologies are eligible in
`the DLMV as determinedto be present at the MS and/or as
`determinedbyhistorical contents of the WDR queue 22 (e.g.
`location technologyfield 1100e with MSID field 1100a for
`this MS) and/or determined by LBX history 30. Application
`Programming Interfaces (APIs) may also be used to deter-
`mine MS DLM capability (role(s)) for entry(s) to the DLMV.
`Block 1240 completes LBX character initialization, and
`FIG. 12 initialization processing terminates thereafter at
`block 1242. Depending on whatthreads werestarted as part
`of block 1206, Block 1240 maystartup the preferred number
`of listen/receive threads for feeding queue 26 andthe pre-
`ferred number of send threads for sending data inserted to
`queue 24, in particular when transmitting new data 1302 and
`receiving new data 1302 or 1312. The numberof threads
`started should be optimal for parallel processing across appli-
`cable channel(s). Upon encounter of block 1242, the MS is
`appropriately operational, and a user at the MS of FIG. 12
`processing will have the ability to use the MS andapplicable
`user interfaces thereof.
`
`75
`minesthere is at least one ILM role enabled(i.e. as marked by
`associated flag), then block 1224artificially sets the corre-
`sponding 19xx-PID variables to a value greater than 0 for
`indicating the process(es) are enabled, and are to be started by
`subsequent FIG. 12 initialization processing. The 19xx-PID
`will be replaced with the correct Process Identifier (PID)
`upon exit from block 1232 after the process is started. Pref-
`erably, every MS can have ILM capability. However, a user
`may wantto (configure) ensure a DLM has no ILM capability
`enabled (e.g. or having no list present). In some embodi-
`ments, by default, every MS has an unmarked list of ILM
`capability maintained to the ILMV for 1) USE DLM REF-
`ERENCESand 2) USE ILM REFERENCES. USE DLM
`REFERENCES, when enabled (marked) in the ILMYV, indi-
`cates to allow the MSof FIG. 12 processing to determineits
`whereabouts relative remote DLMs. USE ILM REFER-
`
`ENCES, when enabled (marked) in the ILMV, indicates to
`allow the MSof FIG. 12 processing to determine its where-
`abouts relative remote ILMs. Having bothlist items marked
`indicates to allow determining MS whereabouts relative
`mixed DLMs and ILMs. An alternative embodiment may
`include a USE MIXED REFERENCESoptionfor controlling
`the MS of FIG. 12 processing to determine its whereabouts
`relative mixed DLMsand/or ILMs. Alternative embodiments
`
`will enforce any subset ofthese options without exposing user
`configurations, for example on a MS without any means for
`being directly located.
`For any of the ILMV roles of USE DLM REFERENCES,
`USE ILM REFERENCES, orboth, all processes 1902, 1912,
`1922, 1932, 1942 and 1952are preferably started (i.e. 1902-
`PID, 1912-PID, 1922-PID, 1932-PID, 1942-PID and 1952-
`PID are artificially set at block 1224 to cause subsequent
`process startup at block 1232). Characteristics of an antici-
`pated LN-expanse(e.g. anticipated location technologies of
`participating MSs, MScapabilities, etc) will start a reason-
`able subset of those processes with at least process 1912
`started. Block 1224 continues to block 1226. If block 1222
`determines there are no ILMV role(s) enabled, then block
`processing continues to block 1226.
`Block 1226 initializes an enumerated process name array
`for convenient processing reference of associated process
`specific variables described in FIG. 19, and continuesto block
`1228 where thefirst memberof the set is accessed for subse-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`quent processing. The enumeratedset of process nameshas a
`prescribedstart order for MS architecture 1900. Thereafter, if
`block 1230 determines the process identifier (i.e. 19xx-PID
`such that 19xx is 1902, 1912, 1922, 1932, 1942, 1952 ina loop
`With reference now to FIG. 29A, depictedis a flowchart for
`
`iteration of blocks 1228 through 1234) is greater than0(e.g. describing a preferred embodimentof a processfor starting a
`this first iteration of 1952-PID>0 implies it is to be started
`specified numberof threads in a specified thread pool. FIG.
`here; also implies process 1952 is enabled as used in FIGS.
`29A isin itself an O/S process, has a process identifier (PID)
`14A,28, 29A and 29B), then block 1232 spawns(starts) the
`after being started, will contain at least two threads of pro-
`process (e.g. 1952) of FIG. 29A to start execution of subor-
`cessing after being started, and is generic in being able to take
`dinate worker thread(s) (e.g. process 1952 thread(s)) and
`on the identity of any process namepassedto it (e.g. 19x)
`saves the real PID (Process Identifier) to the PID variable (e.g.
`with a parameter(e.g. from block 1232). FIG. 29A represents
`1952-PID) returned by the operating system process spawn
`the parent thread of a 19xx process. The FIG. 29A process is
`interface. Block 1232 passes as a parameterto the process of
`generic for executing any of processes 19xx (i.e. 1902, 1912,
`FIG. 29A which process nametostart (e.g. 1952), and con-
`1922, 1932, 1942 and 1952) with the prescribed numberof
`tinues to block 1234. If block 1230 determines the current
`workerthreads using the 19xx.-Max configuration (i.e. 1902-
`Max, 1912-Max, 1922-Max, 1932-Max, 1942-Max and
`process PID variable (e.g. 1952-PID)is not greaterthan0(i.e.
`60
`not to be started; also implies is disabled as used in FIGS.
`1952-Max). FIG. 29A will stay running until it (first all of its
`14A,28, 29A and 29B), then processing continues to block
`workerthread(s)) is terminated. FIG. 29A consists of an O/S
`1234. Block 1234 checksif all process names of the enumer-
`Process 19xx with at least a parent thread (main thread) and
`ated set (pattern of 19xx) have been processed (iterated) by
`one worker thread (or numberof worker threads for FIG. 19
`blocks 1228 through 1234. If block 1234 determinesthat not
`processing as determined by 19xx-Max). The parent thread
`all process names in the set have been processed (iterated),
`has purpose to stay running while all worker threads are
`then processing continues back to block 1228 for handling the
`running, and to ownintelligence for starting worker threads
`next process namein theset. Ifblock 1234 determinesthatall
`and terminating the process when all worker threadsareter-
`
`65
`
`APPLE
`APPLE
`EXHIBIT 1001 - PAGE 0302
`EXHIBIT 1001 - PAGE 0302
`
`

`

`US 8,639,267 B2
`
`77
`minated. The worker threads are started subordinate to the
`
`FIG. 29A process at block 2912 using an O/S start thread
`interface.
`
`A 19xx (i.e. 1902, 1912, 1922, 1932, 1942 and 1952) pro-
`cess starts at block 2902 and continues to block 2904 where
`
`the parameter passed for which process nametostart (i.e. take
`on identity of) is determined (e.g. 1952). Thereafter, block
`2906 creates a RAM semaphore(i.e. operating system term
`fora well performing Random Access Memory (RAM) sema-
`phore with scope only within the process (i.e. to all threads of
`the process)). The local semaphore namepreferably uses the
`process nameprefix (e.g. 1952-Sem), and is used to synchro-
`nize threads within the process. RAM semaphores perform
`significantly better than global system semaphores. Alternate
`embodiments will have process semaphore(s) created at
`block 1220 in advance. Thereafter, block 2908 initializes a
`thread counter(e.g. 1952-Ct) to 0 for counting the number of
`worker threads actually started within the 19xx process (e.g.
`1952), block 2910 initializes a loop variable J to 0, and block
`2912 starts a workerthread(the first one uponfirst encounter
`ofblock 2912 for a process)in this process (e.g. process 1902
`starts worker thread FIG. 20, ..., process 1952 starts worker
`thread FIG. 26A—seearchitecture 1900 description below).
`Thereafter, block 2914 increments the loop variable by 1
`and block 2916 checksif all prescribed worker threads have
`been started. Block 2916 accesses the 19xx-Max (e.g. 1952-
`Max) variable from shared memory using a semaphore for
`determining the maximum numberofthreadstostart in the
`process worker thread pool. If block 2916 determines all
`worker threads have beenstarted, then processing continues
`to block 2918. If block 2916 determines that not all worker
`threads have been started for the process of FIG. 29A, then
`processing continues back to block 2912 for starting the next
`worker thread. Blocks 2912 through 2916 ensure the 19xx-
`Max(e.g. 1952-Max) number of worker threads are started
`within the process of FIG. 29A.
`Block 2918 waits until all worker threads of blocks 2912
`
`through 2916 have been started, as indicated by the worker
`threads themselves. Block 2918 waits until the process 19x.x-
`Ct variable has been updated to the prescribed 192xx-Max
`value by the started worker threads, thereby indicating they
`are all up and running. Whenall worker threads are started
`(e.g. 1952-Ct=1952-Max), thereafter block 2920 waits (per-
`haps a very long time) until the worker thread count(e.g.
`1952-Ct) has been reduced back downto 0 for indicating that
`all worker threads have been terminated, for example when
`the user gracefully powers off the MS. Block 2920 continues
`to block 2922 whenall worker threads have been terminated.
`
`Block 2922 sets the shared memory variable for the 192.
`process (e.g. 1952-PID) to 0 using a semaphorefor indicating
`that the 19xx (e.g. 1952) process is disabled and no longer
`running. Thereafter, the 19x» process terminates at block
`2924. Waiting at blocks 2918 and 2920 are accomplished in a
`variety of well known methods:
`Detect signal sent to process by last started (or terminated)
`workerthread that thread count is now MAX (or 0); or
`Loop on checkingthe thread count with sleep time between
`checks, wherein within the loop there is a check of the
`current count (use RAM semaphoreto access), and pro-
`cessing exits the loop (and block) when the count has
`reached the sought value; or
`Use of a semaphore for a count variable which causes the
`parent thread of FIG. 29A to stay blocked prior to the
`count reaching its value, and causes the parent thread to
`become cleared (will leave wait block) when the count
`reachesits sought value.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`78
`Starting threads of processing in FIG. 29A has been pre-
`sented from a software perspective, but there are hardware/
`firmware thread embodiments which maybe started appro-
`priately to accomplish the same functionality. If the MS
`operating system does not have an interface for returning the
`PID at block 1232, then FIG. 29A can havea block(e.g. 2905)
`used to determine its own PID for setting the 19x.x-PID vari-
`able.
`
`FIGS. 13A through 13C depictan illustration of data pro-
`cessing system wireless data transmissions over some wave
`spectrum. Embodiments may exist for any of the aforemen-
`tioned wave spectrums, and data carried thereon may or may
`not be encrypted (e.g. encrypted WDR information). With
`reference now to FIG. 13A, a MS,for example a DLM 200a,
`sends/broadcasts data such as a data 1302 in a manner well
`knownto those skilled in the art, for example other character
`32 processing data. When a Communications Key (CK) 1304
`is embeddedwithin data 1302, data 1302 is considered usual
`communications data (e.g. protocol, voice, or any other data
`over conventional forward channel, reverse channel, voice
`data channel, data transmission channel, or any otherpriorart
`use channel) which has been altered to contain CK 1304. Data
`1302 contains a CK 1304 which can be detected, parsed, and
`processed whenreceived by another MSor other data pro-
`cessing system in the vicinity of the MS (e.g. DLM 200a) as
`determined by the maximumrangeoftransmission 1306. CK
`1304 permits “piggy-backing” on current transmissions to
`accomplish new functionality as disclosed herein. Transmis-
`sion from the MSradiate out from it in all directions in a
`mannerconsistent with the wave spectrum used. The radius
`1308 representsa first range of signal reception from the MS
`200a, perhaps by another MS (not shown). The radius 1310
`represents a second range of signal reception from the MS
`200a, perhaps by another MS (not shown). The radius 1311
`representsa third range of signal reception from the MS 200a,
`perhaps by another MS (not shown). The radius 1306 repre-
`sents a last and maximum rangeofsignal reception from the
`MS200a, perhaps by another MS(not shown). MSdesign for
`maximum radius 1306 may take into account the desired
`maximum range versus acceptable wave spectrum exposure
`health risks for the user of the MS. The time of transmission
`from MS 200ato radius 1308 is less than times of transmis-
`sion from MS200ato radiuses 1310, 1311, or 1306. The time
`of transmission from MS 200a to radius 1310 is less than
`times of transmission from MS 200a to radiuses 1311 or
`1306. The time oftransmission from MS 200ato radius 1311
`is less than time of transmission from MS 200a to radius
`1306.
`In another embodiment, data 1302 contains a Communi-
`cations Key (CK) 1304 because data 1302 is new transmitted
`data in accordance with the present disclosure. Data 1302
`purpose is for carrying CK 1304 information for being
`detected, parsed, and processed whenreceived by another MS
`or other data processing system in the vicinity of the MS(e.g.
`DLM 200a) as determined by the maximum rangeoftrans-
`mission 1306.
`
`With reference now to FIG. 13B, a MS, for example an
`ILM 10004, sends/broadcasts data such as a data 1302 ina
`mannerwell knownto those skilled in the art. Data 1302 and
`CK 1304 are as described above for FIG. 13A. Data 1302 or
`CK 1304 can be detected, parsed, and processed when
`received by another MSorother data processing system in the
`vicinity of the MS (e.g. ILM 10004) as determined by the
`maximum range oftransmission 1306. Transmission from the
`MSradiate out from it in all directions in a mannerconsistent
`
`with the wave spectrum used, and as described abovefor FIG.
`13A.
`
`APPLE
`APPLE
`EXHIBIT 1001 - PAGE 0303
`EXHIBIT 1001 - PAGE 0303
`
`

`

`79
`With reference now to FIG. 13C,aserviceor set of services
`sends/broadcasts data such as a data packet 1312 in a manner
`well knownto those skilled in the art, for example to service
`other character 32 processing. When a Communications Key
`(CK) 1314 is embedded within data 1312, data 1312 is con-
`sidered usual communications data (e.g. protocol, voice, or
`any other data over conventional forward channel, reverse
`channel, voice data channel, data transmission channel, or
`any other prior art use channel) which has been altered to
`contain CK 1314. Data 1312 contains a CK 1314 which can
`
`be detected, parsed, and processed when received by an MS
`or other data processing system in the vicinity of the
`service(s) as determined by the maximum range of transmis-
`sion 1316. CK 1314 permits “piggy-backing” on current
`transmissions to accomplish new functionality as disclosed
`herein. Transmissions radiate outin all directions in a manner
`
`FIG. 14A depicts a flowchart for describing a preferred
`embodiment of MS LBX configuration processing. FIG. 14 is
`of Self Management Processing code 18. MS LBX configu-
`ration begins at block 1402 uponuseraction to start the user
`interface and continues to block 1404 where user interface
`objects are initialized for configurations described below
`with current settings that are reasonable for display to avail-
`able userinterface real estate. Thereafter, applicable settings
`are presented to the user at block 1406 with options. Block
`1406 preferably presents to the user at least whether or not
`DLMcapability is enabled (i.e. MS to behave as a DLM=at
`consistent with the wave spectrum used, and data carried
`thereon may or may notbe encrypted (e.g. encrypted WDR
`least one role of DLMVenabled), whether or not ILM capa-
`
`information). The radius 1318 representsafirst range ofsig- bility is enabled (i.e. MS to behave as an ILM=atleast one role
`20
`nal reception from the service (e.g. antenna thereof), perhaps
`of ILMV enabled), and/or whether or not this MS should
`by a MS (not shown). The radius 1320 represents a second
`participate in the LN-expanse as a source location for other
`range of signal reception from the service (e.g. antenna
`MSs (e.g. process 1902 and/or 1942 enabled). Alternative
`thereof), perhaps by a MS (not shown). The radius 1322
`embodiments will further present more or less information
`represents a third range of signal reception from the service
`for each of the settings, or present information associated
`(e.g. antenna thereof), perhaps by a MS (not shown). The
`with other FIG. 14 blocks of processing. Other embodiments
`radius 1316 represents a last and maximum rangeofsignal
`will not configure DLMsettings for an MS lacking DLM
`reception from the service (e.g. antenna thereof), perhaps by
`capability (or when all DLMV roles disabled). Other embodi-
`a MS(not shown). The time of transmission from service to
`ments will not configure ILM settings when DLM capability
`radius 1318 is less than timesof transmission from service to
`is present. Block 1406 continues to block 1408 where pro-
`30
`radiuses 1320, 1322, or 1316. The time of transmission from
`cessing waits for user action in response to options. Block
`
`service to radius 1320 is less than times of transmission from 1408 continues to block 1410 whenauseractionis detected.
`service to radiuses 1322 or 1316. The time of transmission
`from service to radius 1322 is less than time of transmission
`from service to radius 1316. In another embodiment, data
`1312 contains a Communications Key (CK) 1314 because
`data 1312 is new transmitted data in accordance with the
`
`10
`
`15
`
`25
`
`35
`
`US 8,639,267 B2
`
`80
`Also in the case of new data communications, send queue 24
`retrieval processing simply retrieves CK information from
`the queue and transmits CK information as new data.
`
`5
`
`LBX: LN-EXPANSE Configuration
`
`present disclosure. Data 1312 purpose is for carrying CK
`1314 information for being detected, parsed, and processed
`when received by another MSor data processing system in
`the vicinity of the service(s) as determined by the maximum
`range of transmission.
`In some embodiments, data 1302 and 1312 are prior art
`wireless data transmission packets with the exception of
`embedding a detectable CK 1304 and/or CK 1314, respec-
`tively. Usual data communications of MSs are altered to
`additionally contain the CK so data processing systemsin the
`vicinity can detect, parse, and process the CK. Appropriate
`send and/or broadcast channel processing is used. In other
`embodiments, data 1302 and 1312 are new broadcast wireless
`data transmission packets for containing CK 1304 and CK
`1314, respectively. A MS mayuse send queue 24for sending/
`broadcasting packets to data processing systemsin the vicin-
`ity, and may use the receive queue 26 for receiving packets
`from other data processing systemsin the vicinity. Contents
`of CKs (Communications Keys) depend on which LBX fea-
`tures are in use and the functionality intended.
`In the case of “piggybacking” on usual communications,
`receive queue 26 insertion processing simply listens for the
`usual data and when detecting CK presence,inserts CK infor-
`mation appropriately to queue 26 for subsequent processing.
`Also in the case of “piggybacking”on usual communications,
`send queue 24retrieval processing simply retrieves CK infor-
`mation from the queue and embedsit in an outgoing data 1302
`at first opportunity. In the case of new data communications,
`receive queue 26 insertion processing simply listens for the
`newdata containing CK information, and inserts CK infor-
`mation appropriately to queue 26 for subsequent processing.
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`If block 1410 determinesthe user selected to configure DLM
`capability (i.e. DLMVrole(s)), then the user configures DLM
`role(s) at block 1412 and processing continues back to block
`1406. Block 1412 processing is described by FIG. 15A.If
`block 1410 determines the user did not select to configure
`DLMcapability (i.e. DLMV role(s)), then processing contin-
`ues to block 1414. If block 1414 determines the user selected
`
`to configure ILM capability (.e. ILMV role(s)), then the user
`configures ILM role(s) at block 1416 and processing contin-
`ues back to block 1406. Block 1416 processing is described
`by FIG. 15B. If block 1414 determines theuserdid notselect
`to configure ILM capability (i.e. ILMV role(s)), then process-
`ing continues to block 1418. If block 1418 determines the
`user selected to configure NTP use, then the user configures
`NTP use at block 1420 and processing continues back to
`block 1406. Block 1420 processing is described by FIG. 16. If
`block 1418 determines the user did not select to configure
`NTPuse, then processing continues to block 1422.
`If block 1422 determinestheuser selected to maintain the
`
`WDRqueue, then the user maintains WDRsat block 1424
`and processing continues back to block 1406. Block 1424
`processing is described by FIG. 17. Blocks 1412, 1416, 1420
`and 1424 are understood to be delimited by appropriate sema-
`phore control to avoid multi-threaded access problems. If
`block 1422 determines the user did not select to maintain the
`
`WDR queue, then processing continues to block 1426. If
`block 1426 determines the user selected to configure the
`confidence floor value, then block 1428 prepares parameters
`for invoking a Configure Value procedure (parameters for
`reference (address) of value to configure; and validity criteria
`of value to configure), and the Configure Value procedure of
`FIG.18 is invokedat block 1430 with the two (2) parameters.
`Thereafter, processing continues back to block 1406. Blocks
`1428 and 1430 are understoodto be delimited by appropriate
`semaphore control when modifying the confidence floor
`value since other threads can access the floor value.
`
`APPLE
`APPLE
`EXHIBIT 1001 - PAGE 0304
`EXHIBIT 1001 - PAGE 0304
`
`

`

`US 8,639,267 B2
`
`$1
`The confidence floor value is the minimum acceptable
`confidence value of any field 1100d (for example as checked
`by block 276). No WDR with a field 1100d less than the
`confidence floor value should be used to describe MS where-
`abouts. In an alternative embodiment, the confidence floor
`value is enforced as the same value across an LN-expanse
`with nouser control to modify it. One embodimentof FIG. 14
`does not permit user control over a minimum acceptable
`confidence floor value. Various embodiments will default the
`
`floor value. Block 1812 enforces an appropriate value in
`accordance with the confidence value range implemented
`(e.g. value from 1 to 100). Since the confidence of where-
`abouts is likely dependent on applications in use at the MS,
`the preferred embodiment is to permit user configuration of
`the acceptable whereabouts confidence for the MS. A new
`confidence floor value can be put to use at next thread(s)
`startup, or can be used instantly with the modification made,
`depending on the embodiment. The confidence floor value
`can be used tofilter out WDRspriorto inserting to queue 22,
`filter ont WDRs whenretrieving from queue 22, filter out
`WDRinformation when listening on channel(s) prior to
`inserting to queue 26, and/or used in accessing queue 22 for
`any reason (depending on embodiments). While confidence is
`validated on both inserts and queries(retrievals/peeks), one or
`the other validation is fine (preferably on inserts). It is pre-
`ferred that executable code incorporate checks where appli-
`cable since the confidence floor value can be changed after
`queue 22 is in use. Also, various present disclosure embodi-
`ments may maintain all confidences

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