throbber
US 6,922,548 B1
`(10) Patent No.:
`(12) United States Patent
`
`Moore et al. *Jul. 26, 2005 (45) Date of Patent:
`
`
`US006922548B1
`
`(54) PROVIDING REMOTE NETWORK DRIVER
`INTERFACE SPECIFICATION SERVICES
`OVERA WIRELESS RADIO-FREQUENCY
`MEDIUM
`
`(75)
`
`.
`;
`Inventors T‘méthy M Moore’ Bellevue, WA
`(US)> Em“ Perem Redmond> WA
`(Us); Kennflh D- Ray, Redmond, WA
`(US)
`
`5,566,331 A * 10/1996 Irwin et al.
`................... 707/10
`5,765,155 A *
`6/1998 Nakamura .....
`707/10
`
`2/1999 Blumenau ............. 711/162
`5,875,478 A *
`
`..... 340/7.29
`5,918,158 A *
`6/1999 LaPorta et al.
`............. 370/338
`5,949,776 A *
`9/1999 Mahany et al.
`5,987,060 A
`11/1999 Grenon et al.
`.......... 370/449
`6,480,505 B1 * 11/2002 Johansson etal.
`6,480,711 B1 * 11/2002 Guedalia ................. 455/4121
`
`7/2003 Nevo et al. ............. 370/278
`6,600,726 B1 *
`............ 370/310
`6,603,744 B2 *
`8/2003 Mizutanietal.
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`J
`y
`Sub'ect to an disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`Notice:
`
`*
`
`This patent is subject to a terminal dis-
`claimer.
`
`(21) Appl. No.: 09/556,565
`
`(22)
`
`Filed:
`
`AP“ 24: 2000
`
`Int. Cl.7 .................................................. H04B 7/00
`(51)
`(52) US. Cl.
`...................... 455/412; 455/557; 455/528;
`455/463; 709/315; 709/331; 709/332; 710/62;
`710/63; 710/8; 710/65
`(58) Field of Search ............................. 455/412, 422.1,
`455/463, 557; 528, 41.1; 517; 709/315;
`332; 331; 370/328, 252; 449; 466; 710/62,
`63, 8
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`EP
`EP
`
`FOREIGN PATENT DOCUMENTS
`0 975 123 A1
`1/2000
`0 998 094 A2
`5/2000
`OTHER PUBLICATIONS
`
`Patent Abstracts of Japan, vol. 2000, No. 03, Mar. 30, 2000
`& JP 11 355322 A (Nokia Mobile Phones Ltd), Dec. 24,
`1999 abstract.
`
`(Continued)
`
`Primary Examiner—Marceau Milord
`(74) Attorney, Agent, or Firm—Leydig Voit & Mayer LTD
`
`(57)
`
`ABSTRACT
`
`invention provides a method and computer
`The present
`program product for providing, over a RF link conforming
`to the Bluetooth Specification, a network message protocol
`which is bus-independent and was originally designed for
`bus-attached networking devices. One such network mes-
`sage protocol is the NDIS device management protocol. In
`such a manner, many computer software products designed
`to operate over a hard-wired (or bus-attached) network can
`also be used over a Bluetooth wireless network.
`
`5,497,412 A *
`
`3/1996 Lannen et al.
`
`........... 455/4322
`
`18 Claims, 3 Drawing Sheets
`
`
`
`
`
`if
`41
`
`
`>
`SYSTEMMEMORV —22
`FERSONALCOMPUTER
`Q
`1
`
`
`
`
`‘ M
`n
`u
`m,
`axes
`6‘
`
`_ u
`‘
`
`2°
`52
`PROCE$5INE
`VIDEO
`RF
`
`INTERFADE ‘
`lfiAMl
`_ 25
`UNIT
`mm“
`
`
`
`
`OPERATING
`as RF Dawes SYSTEM
`
`
`
`
`NETWORK
` OTHERmenu
`
`“new
`INTERFACE '
`APPLICA'HON
`
`
`
`
`“ONES
`mmDATA
`
`
`I
`23
`
`
`
`
`
`
`
`
`
`
`
`1
`27
`
`37 mumsx musx ovrmmsx “mum“
`DRIVE
`DRNE
`DRNE
`WTERFACE
`INTERFACE
`INVERFAGE
`INTERFACE
`
`
`
`
`
`
`
`an mam
`.
`,
`Mann-lied“
`5,1,.
`(Malam-
`am:
`1
`”I
`I
`
`
`mhymn:
`Mann
`1
`1
`:
`t
`1
`'
`1
`‘2
`40
`OPERATING
`AFFLICATION
`”$35M
`PROGRAM
`5’
`5va
`page”... W W.
`..
`
`
`
`
`35
`la
`:7
`3’
`REMOVE COMPUTER
`
`
`
`
`
`50/
`
`
`
`AFPUCATKJN
`WIOGRAMS
`313
`
`.0
`
`,
`
`,,
`
`,.
`
`
`
`1
`
`Apple, et al. v. Unlloc
`|PR2019—00251
`
`Exhibit 1027
`Apple, et al. v. Uniloc
`IPR2019-00251
`
`1
`
`

`

`US 6,922,548 B1
`Page 2
`
`OTHER PUBLICATIONS
`
`Post, Guido, et al., Control and Data Flow Aspects in the
`Design of A Wireless Data Radio Modem: A Case Study,
`1996 IEEE International Conference on Acoustics, Speech,
`and Signal Processing—Proceedings, (ICASSP), Atlanta,
`May 7—10, 1996; IEEE International Conference on Acous-
`tics,
`Speech,
`and
`Signal
`Processing—Proceedings,
`(ICASSP), New York, IEEE, US, vol. 6 Conf. 21, May 7,
`1996, pp. 3201—3204, XP000681738.
`Specification of the Bluetooth System, V.1.0B, Dec. 1, 1999.
`Riku Mettala et al., Bluetooth Protocol Architecture (White
`Paper), V1.0, Nokia Mobile Phones, Sep. 29, 1999.
`Brent Miller et al., Mapping SalutationArchitectureAPIs to
`Bluetooth Service Discovery Layer (White Paper), V. 1.0,
`IBM Corporation, Jul. 1, 1999.
`IEEE Standard, 802.11, Part 11: Wireless LAN Medium
`Access Control (ll/(AC) and Physical Layer (PHY) Specifi-
`cations, 1“ Ed. 1999, and Supplements 802.11a—1999 and
`802.11b—1999.
`
`Bob O’Hara and AI Petrick, IEEE 802.11 Handbook A
`Designer’s Companion, Dec. 1999.
`
`Pat Megowan et al., IrDA Object Exchange Protocol, V1.2,
`Counterpoint Systems Foundry, Inc. Microsoft Corporation,
`Mar. 18, 1999.
`
`Universal Plug and Play Device Architecture, v1.0,
`Microsoft Corporation, Jun. 8, 2000.
`
`Golden G. Richard III, “Service Advertisement and Discov-
`ery: Enabling Universal Device Cooperation,” http://com-
`puter.org/internet/, Sep.—Oct. 2000.
`
`ETSI TS 101 369 v7.1.0 (Nov. 1999), Digital Cellular
`Telecommunications System (Phase 2+); Terminal Equip-
`ment
`to Mobile Station (TE—MS) Multiplexer Protocol,
`Global System for Mobile Communications (GSM 07.10
`v7.1.0 Release 1998).
`
`* cited by examiner
`
`2
`
`

`

`US. Patent
`
`Jul. 26, 2005
`
`Sheet 1 0f3
`
`US 6,922,548 B1
`
`
`
`20
`
`47
`
`PERSONAL COMPUTER
`
`21
`
`PROCESSING
`UNIT
`
`43
`
`VIDEO
`ADAPTER
`
`RF
`INTERFACE
`
`23
`
`E
`
`
`"’—
`Monitor
`
`64
`
`62
`
`'
`
`
`
`A;
`.
`63 RF DevIce
`
`SYSTEM MEMORY
`
`.__ 22
`
`
`
`
`
`
`
`BIOS
`
`(RAM)
`
`
`
`OPERATING
`SYSTEM
`
`
`’
`APPLICATION
`PROGRAM
`
`24
`
`26
`
`I—“ 25
`
`__ 35
`
`36
`
`
`
`
`54
`
`
`
`NETWORK
`INTERFACE ’ 53
`
`SERIAL PORT
`INTERFACE
`
`46
`
`51
`
`./._
`m
`Modern
`
`
`OTHER
`PROGRAM
`MODULES
`
`38
`
`HARD DISK
`DRIVE
`INTERFACE
`hard disk
`d five
`
`27
`
`OPTICAL DISK
`MAG DISK
`DRIVE
`DRIVE
`INTERFACE
`INTERFACE
`-—_-.
`F—i'!
`#‘ ,
`—"_"
`MagneIIc dIsk Opucal mm
`dnve
`I
`
`2|8 T
`
`30 T
`
`so
`
`,
`
`29
`
`31
`
`:
`I
`
`.
`'
`
`OPERATING
`SYSTEM
`
`APPLICATION
`PROGRAMS
`
`PSJSEEM
`MODULES
`
`PROGRAM
`DATA
`
`
`
`33
`
`
`"magi
`"'
`Keyboard
`|
`4o
`
`i
`Mouse
`42
`
`52
`
`49
`
`35
`
`35
`
`37
`
`I REMOTE COMPUTER
`
`Figure 1
`
`5°
`
`35
`
`APPLICATION
`PROGRAMS
`
`3
`
`

`

`US. Patent
`
`Jul. 26, 2005
`
`Sheet 2 0f3
`
`US 6,922,548 B1
`
`1 00
`
`102
`
`104
`
`106
`
`1 08
`
`
`
`Application Layer
`
`Presentation Layer
`
`Session Layer
`
`Transpon Layer
`
`
`
`Network Layer
`
`
`
`'
`L
`110 NeMOFKDev'ca'nterfaoespeclfiwtlon/
`
` Data Link Layer
`
`116
`
` 112
`
`Physical Layer
`
`
`Figure 2
`
`4
`
`

`

`US. Patent
`
`Jul. 26, 2005
`
`Sheet 3 0f3
`
`US 6,922,548 B1
`
`152
`
`Host Remote NDIS Networking Driver
`
`
`
`V\j\164
`
`Bluetooth Host
`
`Bluetooth Device
`
`A4/ 162
`
`160
`
`154
`
`Media Access Control Layer
`
`156
`
`
`
`Physical Layer
`
`Figure 3
`
`5
`
`

`

`US 6,922,548 B1
`
`1
`PROVIDING REMOTE NETWORK DRIVER
`INTERFACE SPECIFICATION SERVICES
`OVER A WIRELESS RADIO-FREQUENCY
`MEDIUM
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This application is related to US. application Ser. No.
`09/556,567, entitled “Bluetooth Compliant Wireless Device
`Connections As Modems Or Sockets” filed on Apr. 24, 2000
`and US. application Ser. No. 09/556,568, entitled “Blue-
`tooth MiniPort Driver Model” filed on Apr. 24, 2000 both of
`which are incorporated herein by reference in their entirety.
`
`TECHNICAL FIELD
`
`This invention relates generally to wireless interface
`technology and, more particularly, relates to the interface
`between computer software applications and wireless
`devices operating in accordance with the Bluetooth speci-
`fication.
`
`BACKGROUND OF THE INVENTION
`
`To provide the greatest compatibility between software
`and hardware components on a computer system, the oper-
`ating system of the computer defines certain interfaces
`which can be accessed and used by the programmers of the
`software components and which are to be provided and
`supported by the designers of hardware components. Thus,
`by using the defined interface, the software component can
`be assured of compatibility with all of the hardware com-
`ponents which support the interface. Similarly, a hardware
`component providing a specific interface can be assured that
`software components will be able to locate and access the
`functionality provided by the hardware component through
`the interface.
`
`Generally, computers and other electronic devices are
`interconnected via physical cables or wires. These commu-
`nication paths allow for the exchange of data or control
`information between such devices. However, it increasingly
`recognized that certain advantages arise from the elimina-
`tion of cables and wires to interconnect devices. Such
`
`advantages include ease of configuration and
`reconfiguration, due to the elimination of the need to physi-
`cally add,
`remove, or displace a physical medium.
`Furthermore, space which would traditionally be used for
`device interconnection media may be given to other uses.
`Furthermore, device mobility is increased through the use of
`wireless connections.
`
`One method for providing wireless connections between
`devices employs a light wave in the Infrared region of the
`electromagnetic spectrum to link devices. The IrDA
`(Infrared Data Association) protocol defines one such con-
`nection mechanism. Unfortunately, such a mechanism must
`usually operate in a line of sight manner. That is to say that
`any opaque obstruction between transmitter and receiver
`will prevent proper operation. Additionally, IR transmitters
`are typically not omnidirectional when incorporated into a
`communicating device, so that for proper operation,
`the
`transmitter must be pointed generally in the direction of the
`receiver, within some nominal deviation such as 30 degrees.
`Finally,
`IR transmitters are typically fairly low power
`devices, and accordingly the range of IR links is usually
`limited to approximately one meter.
`Radio frequency links solve many of the problems inher-
`ent in Infrared links, however, a radio frequency connection
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`scheme is needed whereby a variety of applications can
`easily access the radio link through a connection mechanism
`that provides an appropriate interface. One protocol which
`defines communication between wireless devices through
`radio frequency links is the Bluetooth specification. Blue-
`tooth devices do not require a line of sight with one another
`to operate, and their range can be significantly greater than
`that of IR links. However, one difficulty with the Bluetooth
`specification is that very few computer software programs
`are written to communicate with Bluetooth compliant
`devices. Another difficulty with the Bluetooth specification
`is that there are very few higher level networking protocols
`which are designed to operate over an RF link conforming
`to the Bluetooth specification.
`
`SUMMARY OF THE INVENTION
`
`Accordingly, the present invention provides a method and
`computer program product for providing, over a RF link
`conforming to the Bluetooth specification, a network mes-
`sage protocol which is bus-independent and was originally
`designed for bus-attached networking devices. In such a
`manner, many computer software products designed to
`operate over a hard-wired (or bus-attached) network can also
`be used over a Bluetooth wireless network.
`
`Additional features and advantages of the invention will
`be made apparent from the following detailed description of
`illustrative embodiments which proceeds with reference to
`the accompanying figures.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`While the appended claims set forth the features of the
`present invention with particularity, the invention, together
`with its objects and advantages, may be best understood
`from the following detailed description taken in conjunction
`with the accompanying drawings of which:
`FIG. 1 is a block diagram generally illustrating an exem-
`plary computer system on which the present
`invention
`resides;
`FIG. 2 is a block diagram generally illustrating a seven
`layer network model; and
`FIG. 3 is a block diagram generally illustrating a layer
`model on which the present invention can operate.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`Turning to the drawings, wherein like reference numerals
`refer to like elements, the invention is illustrated as being
`implemented in a suitable computing environment.
`Although not required, the invention will be described in the
`general context of computer- executable instructions, such
`as program modules, being executed by a personal com-
`puter. Generally, program modules include routines,
`programs, objects, components, data structures, etc.
`that
`perform particular tasks or implement particular abstract
`data types. Moreover, those skilled in the art will appreciate
`that the invention may be practiced with other computer
`system configurations, including hand-held devices, multi-
`processor systems, microprocessor based or programmable
`consumer electronics, network PCs, minicomputers, main-
`frame computers, and the like. The invention may also be
`practiced in distributed computing environments where
`tasks are performed by remote processing devices that are
`linked through a communications network. In a distributed
`computing environment, program modules may be located
`in both local and remote memory storage devices.
`
`6
`
`

`

`US 6,922,548 B1
`
`3
`With reference to FIG. 1, an exemplary system for imple-
`menting the invention includes a general purpose computing
`device in the form of a conventional personal computer 20,
`including a processing unit 21, a system memory 22, and a
`system bus 23 that couples various system components
`including the system memory to the processing unit 21. The
`system bus 23 may be any of several types of bus structures
`including a memory bus or memory controller, a peripheral
`bus, and a local bus using any of a variety of bus architec-
`tures. The system memory includes read only memory
`(ROM) 24 and random access memory (RAM) 25. Abasic
`input/output system (BIOS) 26, containing the basic routines
`that help to transfer information between elements within
`the personal computer 20, such as during start-up, is stored
`in ROM 24. The personal computer 20 further includes a
`hard disk drive 27 for reading from and writing to a hard disk
`60, a magnetic disk drive 28 for reading from or writing to
`a removable magnetic disk 29, and an optical disk drive 30
`for reading from or writing to a removable optical disk 31
`such as a CD ROM or other optical media.
`The hard disk drive 27, magnetic disk drive 28, and
`optical disk drive 30 are connected to the system bus 23 by
`a hard disk drive interface 32, a magnetic disk drive inter-
`face 33, and an optical disk drive interface 34, respectively.
`The drives and their associated computer-readable media
`provide nonvolatile storage of computer
`readable
`instructions, data structures, program modules and other
`data for the personal computer 20. Although the exemplary
`environment described herein employs a hard disk 60, a
`removable magnetic disk 29, and a removable optical disk
`31, it will be appreciated by those skilled in the art that other
`types of computer readable media which can store data that
`is accessible by a computer, such as magnetic cassettes, flash
`memory cards, digital video disks, Bernoulli cartridges,
`random access memories, read only memories, and the like
`may also be used in the exemplary operating environment.
`Anumber of program modules may be stored on the hard
`disk 60, magnetic disk 29, optical disk 31, ROM 24 or RAM
`25, including an operating system 35, one or more applica-
`tions programs 36, other program modules 37, and program
`data 38. A user may enter commands and information into
`the personal computer 20 through input devices such as a
`keyboard 40 and a pointing device 42. Other input devices
`(not shown) may include a microphone, joystick, game pad,
`satellite dish, scanner, or the like. These and other input
`devices are often connected to the processing unit 21
`through a serial port interface 46 that is coupled to the
`system bus, but may be connected by other interfaces, such
`as a parallel port, game port or a universal serial bus (USB).
`A monitor 47 or other type of display device is also
`connected to the system bus 23 via an interface, such as a
`video adapter 48.
`In addition to the monitor, personal
`computers typically include other peripheral output devices,
`not shown, such as speakers and printers.
`The personal computer 20 may operate in a networked
`environment using logical connections to one or more
`remote computers or devices, such as a remote computer 49
`or RF device 64. The remote computer 49 may be another
`personal computer, a server, a router, a network PC, a peer
`device or other common network node, and typically
`includes many or all of the elements described above
`relative to the personal computer 20, although only a
`memory storage device 50 has been illustrated in FIG. 1. The
`Radio Frequency (RF) device 64 can be a cellular phone,
`digital camera, another personal computer, or other device
`which includes the capability to communicate through the
`RF spectrum. The logical connections depicted in FIG. 1
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`include a local area network (LAN) 51 and a wide area
`network (WAN) 52, and an RF connection 63. Such net-
`working environments are commonplace in offices,
`enterprise-wide computer networks, intranets and the Inter-
`net.
`
`When used in a LAN networking environment, the per-
`sonal computer 20 is connected to the local network 51
`through a network interface or adapter 53. When used in a
`WAN networking environment, the personal computer 20
`typically includes a modem 54 or other means for establish-
`ing communications over the WAN 52. The modem 54,
`which may be internal or external, is connected to the system
`bus 23 via the serial port
`interface 46: When used in
`conjunction with an RF connection 63, the personal com-
`puter 20 includes an RF interface 62.
`In a networked
`environment, program modules depicted relative to the
`personal computer 20, or portions thereof, may be stored in
`the remote memory storage device. It will be appreciated
`that the network connections shown are exemplary and other
`means of establishing a communications link between the
`computers may be used.
`the invention will be
`In the description that follows,
`described with reference to acts and symbolic representa-
`tions of operations that are performed by one or more
`computers, unless indicated otherwise. As such, it will be
`understood that such acts and operations, which are at times
`referred to as being computer-executed, include the manipu-
`lation by the processing unit of the computer of electrical
`signals representing data in a structured form. This manipu-
`lation transforms the data or maintains it at locations in the
`
`memory system of the computer, which reconfigures or
`otherwise alters the operation of the computer in a manner
`well understood by those skilled in the art. The data struc-
`tures where data is maintained are physical locations of the
`memory that have particular properties defined by the format
`of the data. However, while the invention is being described
`in the foregoing context, it is not meant to be limiting as
`those of skill in the art will appreciate that various of the acts
`and operations described hereinafter may also be imple-
`mented in hardware.
`
`In accordance with the invention, and turning to FIG. 2,
`the Open Systems Interconnection (OSI) seven-layer model
`is shown. This model is an industry standard abstraction of
`computer networking. The application layer 100 directly
`serves the end user and supports the software applications
`with which the user interacts. The presentation layer 102
`provides the mechanisms which interpret data being sent
`from the application layer 100 on one computer to the
`application layer on another. The session layer 104 describes
`the organization of the data being transferred. The transport
`layer 106 acts as a final error correcting layer to ensure the
`data is delivered accurately, in the proper sequence, and with
`no loss or duplication. The network layer 108 defines the
`addressing and routing of the data across the network. It
`controls the operation of the local sub-network and decides
`which physical path the data should take, given network
`conditions, priority of service, and other factors. The data
`link layer 110 controls the transmission of blocks of data, or
`packets, across the network, and provides more fundamental
`error correction. The data link layer 10 is divided into two
`sublayers: the logical link control (LLC) sublayer and the
`media access control (MAC) sublayer. The LLC sublayer
`ensures error-free transmission of data frames by maintain-
`ing logical links, controlling frame flow, sequencing frames,
`acknowledging frames; and retransmitting unacknowledged
`frames. The MAC sublayer manages access to the network,
`checks frame errors and address recognition of the received
`
`7
`
`

`

`US 6,922,548 B1
`
`5
`frames. Protocols which include an LLC sublayer need only
`a minimal transport layer 106. Finally, the physical layer 112
`carries the signals which are sent to the network connection
`114. Generally, the physical layer 112 is implemented in the
`hardware connecting the computer 20 to the network con-
`nection 114.
`
`ANetwork Device Interface Specification (NDIS) 116 can
`reside between the network layer 108 and the data link layer
`110. The NDIS 116 can provide a library of interfaces
`between the software components and the hardware com-
`ponents. The NDIS 116 can define a fully abstracted envi-
`ronment for network interface card (NIC) driver develop-
`ment by providing routines for every external function that
`a NIC driver would need to perform. Thus, the NDIS 116 can
`provide interfaces for communication between a NIC driver
`and a overlying protocol driver and between a NIC driver
`and the underlying NIC hardware itself.
`Generally the application layer 100, presentation layer
`102, session layer 104, transport layer 106, and the network
`layer 108 are implemented in software components operat-
`ing on a computer. The data link layer 110 and the physical
`layer 112 are generally implemented by the hardware
`components, such as a network interface card. The NDIS
`116 library can be used by a software driver implemented in
`the transport layer 110 to communicate with a network
`interface card driver implemented at the data link layer 110.
`A transport layer driver generally implements a network
`protocol stack, such as the well known Transfer Control
`Protocol/Internet Protocol (TCP/IP) stack used on the Inter-
`net. If the transport layer software driver has a packet of data
`to be transmitted, it can call the NIC driver by means of an
`interface from the NDIS 116 library, and pass down the
`packet to be transmitted. Similarly, the NIC driver can use
`an interface of the NDIS 116 to pass the packet to the NIC
`itself for transmission across the network. The NDIS 116
`
`interface can call the operating system specific components
`which perform the transmission at the NIC. The NDIS 116
`interfaces can also be used by the NIC driver to communi-
`cate with the transport layer software driver and pass up a
`received packet of data, or other information.
`One example of the physical layer 112 is the wireless
`Radio-Frequency (RF) device 64. An increasingly popular
`RF protocol for wireless communication between device 64
`and computer 20 is the Bluetooth protocol, described in
`more detail in the “Specification of the Bluetooth System”
`Version 1.0B (Dec. 1, 1999) incorporated herein by refer-
`ence in its entirety. See also the “Windows Wireless Archi-
`tecture” presentation at Appendix B, the “Bluetooth Archi-
`tecture Overview” presentation at Appendix C,
`the
`“Bluetooth Experience in Windows” presentation at Appen-
`dix D, and the “Bluetooth Stack in Windows” presentation
`at Appendix E. As described in the Bluetooth Specification,
`the Logical Link Control and Adaptation Protocol (L2CAP)
`allows higher level protocols to operate over a Bluetooth
`compliant RF link. The L2CAP layer is more particularly
`described in “Specification of the Bluetooth System” Ver-
`sion 1.0B, Part D entitled “Logical Link Control and Adap-
`tation Protocol Specification” (Dec. 1, 1999), attached at
`Appendix A, and incorporated herein by reference in its
`entirety. One such higher level messaging protocol is the
`Remote Network Device Interface Specification (Remote
`NDIS) from Microsoft Corporation, described in more detail
`in co-pending application Ser. No. 09/302,735, entitled
`“Method and System for Abstracting Network Device Driv-
`ers” by Hyder et al., filed on Apr. 30, 1999, and assigned to
`the assignee of the present application, which is incorpo-
`rated herein by reference in its entirety. As described in the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`co-pending application, Remote NDIS provides extensibil-
`ity without change to the bus specific message transport
`mechanisms, allowing implementation on a greater variety
`of such transport mechanisms implemented by the physical
`layer 112. Remote NDIS also provides a driver architecture
`which is proved for both networking and external bus device
`models.
`
`“In the absence of the present invention, hardware manu-
`factures are required to write two drivers, an NDIS miniport
`driver and a bus or network interface. However, the two
`drivers may be distributed as a single binary. The first driver,
`the NDIS miniport driver, exchanges information with NDIS
`116 and communicates with the bus or network interface
`driver through some vendor-specific API. The bus or net-
`work interface driver is bus- or network-specific and com-
`municates with hardware through the appropriate bus or
`network driver. The NDIS miniport driver and the bus or
`network interface driver communicate through a vendor-
`specific API because both drivers are written by the manu-
`facturer of the network device being accessed. Therefore,
`while the NDIS miniport must conform to the NDIS API in
`order to communicate with NDIS layer 116, and the bus or
`network interface must conform to the appropriate bus or
`network driver in passing information to network device, the
`interaction between the NDIS miniport and the bus or
`network interface is completely at
`the discretion of the
`hardware manufacturer.
`
`Requiring device manufacturers to write two drivers for
`each piece of equipment they market presents some fairly
`serious problems. For example, the sheer number of device
`drivers is difficult and expensive to manage, both for the
`hardware manufacturer and for operating system developers
`who may distribute certain device drivers with their soft-
`ware. Furthermore, since manufacturers provide both the
`connection to NDIS and the bus or network interface, the
`network functionality and the specifics of a particular bus
`are likely to be coupled, making it impossible to update one
`without the other. Solving these problems will allow for
`faster deployment of remotely connected networking
`devices and lower costs for developing host-based drivers.
`The NDIS miniport driver and the bus or network
`interface, both of which were provided by the device hard-
`ware manufacturer, can be replaced with a Remote NDIS
`miniport layer and bus- or network-specific microports. The
`Remote NDIS miniport layer and bus- or network-specific
`microports are independent of the particular device being
`accessed and therefore can be included as part of the
`operating system. Therefore, hardware manufacturers writ-
`ing to the Remote NDIS specification are no longer required
`to write host-based drivers for their devices. Remote NDIS
`
`defines a connection-agnostic or connection-independent
`message set along with a description of how the message set
`operates over a particular connection, such as a specific bus
`or network. Because the remote NDIS interface is
`
`standardized, a core set of host drivers can support any
`number of attached networking devices, thereby improving
`system stability and user satisfaction because no new drivers
`must be installed to support a new network device. The
`remote NDIS architecture includes a remote NDIS miniport
`driver that understands the remote NDIS message set and
`communicates with bus- or network-specific microport driv-
`ers. Specifically, the Remote NDIS miniport layer encapsu-
`lates NDIS OIDs (Object IDentifiers) and NDIS data packets
`into data structures that can be passed without modification
`to a networking device. The data structures are known as
`Remote NDIS messages.
`The bus- or network-specific microport drivers represent
`an intermediate layer that understands the bus or network
`
`8
`
`

`

`US 6,922,548 B1
`
`7
`responsible for passing the messages onto the device. Thus,
`the microport layer receives the remote NDIS messages and
`passes them to the corresponding element of a bus or
`network driver layer. The bus or network driver layer then
`passes the remote NDIS message to remote the NDIS
`devices.
`
`Because network protocol mechanisms are abstracted
`above the bus or network-specific microport layer, adding
`new network functionality can be accomplished by changing
`only the remote NDIS miniport layer. The microport layer
`remains unchanged because it is merely a message transport
`mechanism that passes NDIS OIDs and NDIS data packets
`encapsulated in remote NDIS messages. Furthermore, add-
`ing network functionality in the form of new NDIS OIDs is
`available to all bus or network microports because a single
`remote NDIS miniport layer can serve them all. The present
`invention also maintains backward compatibility. As new
`NDIS OIDs are added, a remote NDIS device may respond
`that it does not understand the NDIS OID and therefore does
`
`not support the new network functionality.”
`Turning now to FIG. 3, a single L2CAP channel, such as
`L2CAP channel 160, can be used for Remote NDIS control
`communications. Such control communications can include
`
`the responses to those messages, and
`control messages,
`messages by which the device 162 can indicate a change in
`
`8
`MTU of the media minus the RNIDS header size. The device
`152 can fill
`in the MaxTransferSize value in an NDIS
`
`function call to the largest L2CAP message it can send. If the
`host 164 has a smaller L2CAP maximum message size, it
`can overwrite the returned information with its own maxi-
`
`mum message size. Either the host 164 or the device 162 can
`initiate the setup of both the control and data L2CAP
`channels.
`
`A minimal Service Discovery Protocol (SDP) record
`which can be used for a Bluetooth Remote NDIS device can
`be as shown in Table 1 below. As can be seen, the Remote
`NDIS device uses the standard Service Discovery descrip-
`tion. Personal Area Network (PAN) services can communi-
`cate with each other. It is possible for a Bluetooth device to
`have multiple PAN services. For example, a cellular phone
`can have a Wireless WAN server that gives Bluetooth
`devices access to the cellular data network. In such a case the
`
`ServiceName can be “WWAN”, or an even more descriptive
`name. Alternatively,
`the cellular phone can have a PAN
`service that allows internal PAN service to communicate
`
`peer-to-peer between devices. In such a case, the Service-
`Name can be set to “PEER”. A device should not advertise
`
`more than one PAN profile with a ServiceName of PEER.
`
`10
`
`15
`
`20
`
`Item
`
`ServiceClassIDList
`ServiceClassO
`ProtocolDescriptorList
`ProtocolO
`Protocoll
`ProtocolSpecificParameterO
`
`ProtocolSpecificParameterl
`
`ProtocolSpecificParameterN
`ServiceName
`
`TABLE 1
`
`Definition
`
`Type/Size
`
`Value
`
`UUID/32-bit
`
`Attribute
`ID
`0x0001
`
`0x0004
`
`UUID/32-bit L2CAP
`UUID/32-bit PAN
`Unit8
`N = control
`channel #
`N = data
`channel 1
`N = control
`channel N
`
`Unit8
`
`Unit8
`
`L2CAP
`PAN
`Control
`Channel
`Data
`Channel
`Data
`Channel
`Displayable
`text name
`
`state. A separate L2CAP channel 150 can be used to
`exchange Remote NDIS data packets. Adata message can be
`up to 1500 bytes in length, which takes approximately 20 ms
`when using the full Bluetooth bandwidth, and can greatly
`increase should the data message be required to share the
`bandwidth with other traffic. Therefore, a separate L2CAP
`channel 160 is provided to limit the latency in sending
`control messages. Additional L2CAP channels can be added
`to accommodate multiple networking channels that may
`exist on the device 162.
`
`As was described above with reference to FIG. 2, control
`messages are sent directly to the control layer 158, shown in
`FIG. 3, while the data can be first received by the Media
`Access Control Layer 154 and then encapsulated for trans-
`mission across the physical network at the physical layer
`156. To facilitate the sending of responses and status signals,
`and to allow for immediate control, the control layer 158 is
`connected directly to both the Media Access Control Layer
`154 and the physical layer 156.
`Network data is passed between the host 164 and the
`device 162 over the L2CAP channel 150. This data can be
`
`encapsulated in an NDIS packet mechanism, on the model
`already used by the NDIS network stack. The maximum
`length of packets supported by L2CAP can be the maximum
`
`45
`
`50
`
`55
`
`60
`
`65
`
`A remote NDIS Bluetooth device can initiate or accept
`two or more L2CAP channels: a control channel and one or
`more data channels. Messages to the device 162 can be sent
`in the form of L2CAP Pac

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