`
`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