Abstract:
According to the invention an embodiment, a network node for communicating using a MAC address is disclosed. The network node includes a point-to-point interface, a bridge and a MAC address register. The point-to-point interface uses a first protocol. The bridge is coupled to the point-to-point interface and provides a fixed route for the Ethernet interface. The first protocol encapsulates the data of a second protocol. The MAC address register stores the MAC address for the second protocol, were the MAC address is dynamically determined in the field and written to the MAC address register. The MAC address is used when communicating with the network node through the point-to-point interface.

Description:
BACKGROUND OF THE DISCLOSURE  
       [0001]     This disclosure relates in general to ethernet connections and, more specifically, but not by way of limitation, to media access control (MAC) addresses for ethernet connections.  
         [0002]     A point-to-point Ethernet connection is a common configuration today. Where Ethernet is also the physical layer, a cross-over cable is used to connect two Ethernet nodes. In some cases, another physical layer can be used for point-to-point connections, for example, universal serial bus (USB), FireWire™, RS-232, wireless, etc. When a different physical layer is used, it still appears to be Ethernet from above the data link layer.  
         [0003]     A point-to-point Ethernet connection uses physical MAC addresses for addressing data, where each end has a MAC address assigned. The common method to assign MAC addresses is to methodically pre-assign the MAC values from a range bought by the vendor. Each node is administratively assigned a unique MAC address prior to use. This address is static, i.e., the same value is used for the lifespan of the device. Each node on an ethernet network should have a unique MAC address for routing of data packets to function properly.  
         [0004]     An Ethernet MAC address or hardware ID is a 48 bit value. The MAC address can be generally broken down into two 24 bit fields, namely the vendor and device identifiers. A particular manufacturer may rents a particular vendor identifier, e.g., for a yearly fee. The 24 bit device identifier allows 16,777,216 unique IDs associated with that vendor identifier to be assigned by that manufacturer. As more nodes are shipped, more vendor identifiers are purchased.  
       BRIEF SUMMARY OF THE DISCLOSURE  
       [0005]     In one embodiment, the present disclosure provides an Ethernet network node that may communicate on an Ethernet network and which is identified byaby ay MAC address. The network node could be a computer or a device attached to the computer in one embodiment. The network node includes a point-to-point interface, an Ethernet interface, a bridge connecting the Ethernet interface to the point-to-point interface and a MAC address register. The point-to-point interface uses a first protocol, for example, USB or Firewire™. The bridge couples the point-to-point and Ethernet interfaces, encapsulating the second protocol within the second protocol. In one embodiment, the first protocol is USB and the second protocol is Ethernet. The MAC address register stores the MAC address for the second protocol, where the MAC address is dynamically determined in the field and written to the MAC address register. The MAC address is used by the Ethernet to communicate with another network node via the point-to-point connection.  
         [0006]     In another embodiment, the present disclosure further provides a method for dynamically assigning an ethernet media access control (MAC) address for a point-to-point connection between two nodes. In one example, the two nodes are a computing device and a wireless cellular modem attached with a USB cable. A first node of the two nodes is released into the field with a first MAC address field that is programmable. A check is performed to determine which MAC addresses are used by other like nodes on the same network, i.e., nodes that are distinguished by means of a shared or known ethernet vendor identifier. A first MAC address that is unique on the local subnet is chosen for programming into the first MAC address field. The programming of the first MAC address field happens automatically in the field. The first MAC address is sent to a second node. The first node communicates with the second node using the first MAC address.  
         [0007]     In yet another embodiment, the present disclosure also provides a method for dynamically assigning an MAC address for a connection between two nodes. A second node of the two nodes is released into the field with a second MAC address field that is programmable. In one embodiment, the second MAC address field is assigned each time the second node is connected to a host already connected to a first node. A second MAC address is determined for the second node, where the second MAC address is unique on a network. Each time the second node is connected, a different second MAC address could be determined. The second MAC address is loaded into the second MAC address field when the second node is deployed in the field unlike conventional network nodes that assign their MAC address before deployment in the field. Communication is performed with a first node of the two nodes using the second MAC address.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]     The present disclosure is described in conjunction with the appended figures:  
         [0009]      FIGS. 1A, 1B ,  1 C, and  1 D are block diagrams of embodiments of a wireless networking system;  
         [0010]      FIGS. 2A and 2B  are block diagrams of embodiments of a networked computer system;  
         [0011]      FIGS. 3A, 3B ,  3 C, and  3 D are flow diagrams of embodiments of a process for configuring communication between a computer and an attached device. 
     
    
       [0012]     In the appended figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.  
       DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0013]     The ensuing description provides preferred exemplary embodiment(s) only, and is not intended to limit the scope, applicability or configuration of the invention. Rather, the ensuing description of the preferred exemplary embodiment(s) will provide those skilled in the art with an enabling description for implementing a preferred exemplary embodiment of the invention. It being understood that various Various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth in the appended claims.  
         [0014]     Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be represented with block with block diagrams in order to facilitate understanding of the invention. It is understood by one skilled in the art that certain elements not present in the diagrams may be used to implement and communicate using an Ethernet network node. In other instances, well-known circuits, structures and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.  
         [0015]     Also, it is noted that the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.  
         [0016]     Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “computer-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data. “The field” is a term disclosed in this application that applies to equipment after it has left the premises of the equipment manufacturer.  
         [0017]     Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as any storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.  
         [0018]     Referring initially to  FIG. 1A , a block diagram of an embodiment of a wireless networking system  100 - 1  is shown. The depicted embodiment shows a number of computing devices  112  respectively connected to a number of wireless modems  118 . A number of wireless base stations base stations  122  variously communicate with the wireless modems  118 . The Internet  110  is linked to the wireless base stations  122  by various means.  
         [0019]     A particular computing device  112  has an attached wireless modem  118  to allow communication at the link layer using ethernet protocols, but other embodiments could use various link layer protocols. The computing device  112  could include a PDA, tablet computer, a desktop computer, a navigation device, a video player, a music player, a telemetry device, and/or any other electronic device that connects to a remote network. The computing device may have various applications that communicate with peer applications via the Internet  110 .  
         [0020]     A wireless modem  118  is separate from the computing device, but has a cable or wireless connection with the computing device and the wireless base station. The connection between the computing device and wireless modem has a physical layer using a protocol that is different from a protocol used at the link layer. For example, the protocol of the physical layer could be RS-232, RS-422, USB, FireWire™, Bluetooth™, optical fiber, infra-red wireless, WiFi, WiMax, cable modem, DSL, BPL, or any other point-to-point protocol.  
         [0021]     The wireless base station base station  122  is a cellular phone or data base station base station in this embodiment. In other embodiments, the wireless base station base station could be any wireless type of base station, for example, WiMax, WiFi, optical laser transmission, microwave, satellite, or any other wireless networking technology. This embodiment shows a direct connection to the Internet  110 , but the connection could be indirectly through any number of other networking components.  
         [0022]     Although this embodiment relates to the connection between a computing device  112  and a wireless modem  118 , the disclosure is not intended to be so limited. In other embodiments, the connection could between any two devices that have a unique MAC or other type of address at the link layer to represent each of the network nodes. For example, the link layer could be token ring, ethernet, PPPP, etc.  
         [0023]     With reference to  FIG. 1B , a block diagram of another embodiment of the wireless networking system  100 - 2  is shown. In this embodiment, one computing device has multiple attached devices, namely, wireless modems  118 . The various attached devices may use the same or different protocols. Each of the wireless modems  118  is assigned a unique identifying number or MAC address. This embodiment dynamically assigns the MAC addresses such that as each new wireless modem  118  is attached, a check is performed to be sure the chosen MAC address is not already in use.  
         [0024]     Referring next to  FIG. 1C , a block diagram of another embodiment of the wireless networking system  100 - 3  is shown. In this embodiment, a wireless modem  118 , a wired modem  126 , a mouse  130 , a video camera  134 , and possibly other attached network devices are all coupled to the computing device  112 . The attached devices are dynamically assigned a MAC or other address from the perspective of the computer device.  
         [0025]     With reference to  FIG. 1D , a block diagram of another embodiment of the wireless networking system  100 - 4  is shown. In this embodiment, the computing device  112  is connected to an intranet  140 . The intranet could have any number of other computing devices, where each could have any number of attached devices. Some network protocols require each attached device for each computing device on the entire intranet  140  to have a unique address or MAC address.  
         [0026]     Referring next to  FIG. 2A , a block diagram of an embodiment of a networked computer system  200 - 1  is shown. In this embodiment, the computing device  112  is coupled to a wireless modem  118 , but any attached device could be used in other embodiments. The computing device  112  is coupled to the wireless modem using a USB cable, but other embodiments could use other wired or wireless media for this connection.  
         [0027]     The computing device  112  in this embodiment includes any number of applications  210 , an operating system  214 , an ethernet application programming interface (API)  218 , a bridging driver  222 , a USB port  226 , and other items that are not depicted. The applications  210  and/or operating system  214  could be network aware and utilize the network connection with the wireless modem  118 . The operating system  210  and applications  214  communicate via the ethernet API  218 . Each node on an ethernet network has a MAC address hence in this embodiment the ethernet API appears to have a MAC address as does the wireless modem  118 . The computing device  112  may be connected to other networks and could serve as a bridge, switch or router between the wireless modem  118  and those other networks.  
         [0028]     The bridging driver  222  appears to the operating system  214  as an ethernet card, but is implemented in software. The ethernet API  218  communicates information using an ethernet link layer protocol that is converted by the bridging driver  222  to a format that can be used by the USB port  226 . Included in the USB port  226  is an USB API, a driver and a physical circuit. The bridging driver  222  implements ethernet over USB by encapsulating the ethernet link layer protocol to use the USB physical layer by interaction with the USB API of the USB port  226 . Where there are multiple attached devices, multiple bridging drivers  222  could be loaded or a single bridging driver  222  could implement the ethernet over USB function. Where there are multiple bridging drivers  222  attached to the same computing device, they can communicate to their peers when determining which MAC addresses are available for use.  
         [0029]     The wireless modem  118  includes a USB interface  232 , a USB bridge  236 , a modem  240 , and an air interface  244 . The USB interface  232  allows bi-directional communication with the computing device  112  using a USB physical layer. The ethernet link layer is transported over the USB physical layer. Conversion from a USB physical layer to an ethernet layer occurs in the USB bridge  236 . This embodiment includes an Ethernet interface  238  that provides a network interface to communicate with the modem  240  which is served by the USB bridge  236 . The modem  240  believes it is communicating with the computing device  112  using an ethernet protocol because of the effort of the USB bridge  236  and other blocks in this communication chain. Data destined for the air interface  244  is modulated and return data is demodulated in the modem  240 . The modem  240  can dynamically assign a MAC address itself or derive one with information received from the computing device  112 .  
         [0030]     With reference to  FIG. 2B , a block diagram of another embodiment of the networked computer system  200 - 2  is shown. This embodiment interfaces the computing device  112  with a video camera  134 . The physical interface between the two devices is FireWire™. A bridging driver implements ethernet over FireWire™ by interacting an API of the FireWire™ port  254 . Included in the video camera  134  is a camera circuit  270 , a FireWire™ bridge  262  and a FireWire™ interface  258 . The FireWire™ bridge converts the FireWire™ physical layer to serve the Ethernet interface  238  that can communicate with the camera circuit  270  having an Ethernet port.  
         [0031]     Referring next to  FIG. 3A , a flow diagram of an embodiment of a process  300 - 1  for configuring communication between a computer  112  and an attached device is shown. The depicted portion of the process  300 - 1  begins in step  302  where the device is attached to the computing device  112 , for example, a USB cable is connected between the attached device USB interface  232  and the computing device  112  USB port  226 . The physical layer senses a connection with the attached device in step  304 , which automatically causes loading of the bridging driver  222  if it isn&#39;t already loaded. In some cases, the bridging driver isn&#39;t loaded until manually done by loading an application  210  or otherwise by the user.  
         [0032]     In this embodiment, the bridging driver  222  chooses a MAC address in a multi-step process that assures there are no conflicts with other devices on the local subnet or attached to the same computing device. In step  308 , the bridging driver  222  checks for other bridging drivers  222  that might be already running. The MAC addresses for any running bridging drivers  222  are noted. In this embodiment all bridging drivers  222  use the same vendor identifier that is reserved or rented such that no other type of device will have the same vendor identifier. In this way, only bridging drivers  222  that use the same vendor identifier could possibly have duplicate MAC addresses. In step  312 , the bridging driver  222  randomly chooses a device identifier from those not currently used by another bridging driver  222 . The previously assigned vendor identifier is combined with the dynamically-chosen device identifier to determine the MAC address for the bridging driver  222 .  
         [0033]     Once the computing device end of the point-to-point connection is chosen, the other endpoint chooses a MAC address. In this embodiment, the attached device derives its MAC address from the bridging driver MAC address. In step  316 , the chosen MAC address of the bridging driver  222  is communicated to the attached device using a USB control channel, but any other means of communication could be used in other embodiments. The attached device chooses a MAC address in step  320  by using the same device identifier as the bridging driver  222 , but prepending that with a vendor identifier that is different from the one used by the bridging driver  222 . The vendor identifier used by the attached device is controlled by the manufacturer of the attached device to eliminate the likelihood that it might appear elsewhere on any network.  
         [0034]     The bridging driver  222  can presume the MAC address of the attached device in step  324  by knowing how it will choose a MAC address. In this embodiment, the bridging driver impliesying the value of the MAC address of the attached device, makes making it unnecessary to actually communicate the chosen MAC address. Once the MAC addresses are known further configuration may occur before ethernet communication is available at the link layer in step  328 . In this embodiment, only two vendor identifiers are used to allow communication between the two devices.  
         [0035]     With reference to  FIG. 3B , a flow diagram of an embodiment of a process  300 - 2  for configuring communication between a computer  112  and an attached device is shown. This embodiment differs from the embodiment of  FIG. 3A  in that step  308  is replaced with step  306 . Vendor identifiers are not reserved for the bridging driver in this embodiment. In step  306 , the bridging driver checks for MAC addresses used by other bridging drivers  222 , checks the operating system records for MAC addresses in use by other network interface controllers and checks the remainder of the attached network using a RARP request. A random MAC address can then be selected that is not used elsewhere on the intranet  140 .  
         [0036]     The attached device could make a predetermined choice of its MAC address in step  320  such that the bridging driver  222  implicitly knows what will be chosen. For example, the MAC address of the attached device may be derived by adding sixteen to the MAC address of the bridging driver  222 . Knowing what the attached device will choose, the bridging device  222  can choose its address in a way such that the address of the attached device will not conflict either.  
         [0037]     Referring next to  FIG. 3C , a flow diagram of an embodiment of a process  300 - 3  for configuring communication between a computer  112  and an attached device is shown. In this embodiment, there are no steps  306  or  308  as the bridging driver simply chooses at random a MAC address in step  314 . The likelihood that the MAC address is used elsewhere on the network is slight. A new one could be chosen if the bridging driver  222  later detects a conflict or some sort of improper operation. The MAC address of the attached device in this embodiment is set at the factory to be unique. The attached device communicates the pre-assigned MAC address to the bridging driver  222  in step  324  via a USB control channel.  
         [0038]     With reference to  FIG. 3D , a flow diagram of an embodiment of a process  300 - 4  for configuring communication between a computer  112  and an attached device is shown. In this embodiment, there are no steps  306  and  308 . Both the bridging driver  222  and the attached device randomly choose their MAC addresses respectively in steps  314  and  322 . There is little likelihood of any redundancy, but if communication broke down, new MAC addresses could be randomly chosen again in another attempt to avoid redundancy.  
         [0039]     In another embodiment, both the physical layer and the link layer could be ethernet. Each end would randomly choose MAC addresses to allow initial communication, but those MAC addresses would only be used for initial configuration and not reported to the operating system  214  or applications  210 . Using this temporary ethernet channel, the MAC addresses could be adjusted so as to minimize the risk of redundancy. Once any changes are done, the MAC addresses would be reported to the operating system  214  and applications  210 .  
         [0040]     While the principles of the invention have been described above in connection with specific apparatuses and methods, it is to be clearly understood that this description is made only by way of example and not as limitation on the scope of the invention.