Abstract:
Methods and systems for a mixed-mode MoCA network, substantially as illustrated by and/or described in connection with at least one of the figures, as set forth more completely in the claims. For example and without limitation, various aspects of the present disclosure provide methods and systems for controlling communication bandwidth allocation in a mixed-mode mixed-band shared cable network.

Description:
PRIORITY CLAIM 
       [0001]    This application claims priority to and the benefit of the following application(s), each of which is hereby incorporated herein by reference: 
         [0000]    U.S. provisional patent application 62/193,313 titled “Mixed-Mode MoCA Network” filed on Jul. 16, 2015. 
     
    
     BACKGROUND 
       [0002]    Limitations and disadvantages of conventional approaches to multimedia over coaxial alliance (MoCA) networking will become apparent to one of skill in the art, through comparison of such approaches with some aspects of the present method and system set forth in the remainder of this disclosure with reference to the drawings. 
       BRIEF SUMMARY 
       [0003]    Various aspects of the present disclosure provide methods and systems for a mixed-mode MoCA network, substantially as illustrated by and/or described in connection with at least one of the figures, as set forth more completely in the claims. For example and without limitation, various aspects of the present disclosure provide methods and systems for controlling communication bandwidth allocation in a mixed-mode mixed-band shared cable network. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1  depicts an example MoCA network adapted in accordance with aspects of this disclosure in order to permit concurrent communications among multiple pairs of nodes. 
           [0005]      FIG. 2  is a general block diagram representing an example implementation of any of the MoCA devices of  FIG. 1 . 
           [0006]      FIG. 3  illustrates the spectrum used on the MoCA network of  FIG. 1 . 
           [0007]      FIGS. 4A-4G  illustrate various combinations of concurrent communications on the MoCA network of  FIG. 1 . 
           [0008]      FIG. 5  is a flowchart illustrating an example process for granting reservation requests in a mixed-mode MoCA network. 
       
    
    
     DETAILED DESCRIPTION 
       [0009]      FIG. 1  depicts an exemplary MoCA network. Shown in  FIG. 1  is a local area network (LAN)  100  connected to a network  114 . The exemplary LAN  100  comprises a device  102  (e.g., a gateway device and/or network controller device, etc.), network devices  104   a - 104   b  and  110   a - 110   b , coupled via links  106   a - 106   g  and splitters  108   a - 108   b.    
         [0010]    Each of the links  106   a - 106   g  may, for example, comprise wired cabling, optical cabling, and/or wireless links. In an exemplary embodiment, each of the links  106   a - 106   g  comprises coaxial cabling. The splitter  108   a  may, for example, be operable to electrically couple links  106   a ,  106   b ,  106   c , and  106   g  such that the signal on each of such four links is substantially the same. The splitter  108   b  may, for example, be operable to electrically couple links  106   c ,  106   d ,  106   e , and  106   f  such that the signal on each of such four links is substantially the same. 
         [0011]    The device  102  comprises circuitry operable to communicate over the links  106   a - 106   g . The circuitry of the device  102  may also be operable to communicate with network  114  (e.g., a CaTV network, a DSL network, a satellite network, etc.). The device  102  may be, for example, a set-top box or gateway operable to receive data from the network  114  via the links  106   g  and  106   b , process the received data, and convey the processed data to the devices  104   a - 104   b  via the links  106   a - 106   f . In an exemplary implementation, the device  102  may communicate the processed data over the links  106   a - 106   f  in accordance with multimedia over coaxial alliance (MoCA) standards, such as the “MoCA MAC/PHY Specification v2.0 MoCA-M/P-SPEC-V2.0-20100507,” which is hereby incorporated herein by reference in its entirety. In such an example implementation, the device  102  may function as the network coordinator (NC) which handles allocation of timeslots and frequency bands for transmissions on the network. The device  102  may, for example, be a “new” or “next generation” MoCA node that is operable to concurrently communicate on a conventional (“old”) MoCA band (e.g., band  302  in  FIG. 3 ) as well as a “new” MoCA band (e.g., band  304  in  FIG. 3 ). 
         [0012]    Each of the devices  104   a - 104   b  may, for example, comprise circuitry operable to communicate over the links  106   a - 106   f . The example devices  104   a - 104   b  may, for example, be “conventional” or “old” MoCA nodes operable to concurrently communicate on the old band  302  but not the new band  304 . 
         [0013]    Each of the devices  110   a - 110   b  may, for example, comprise circuitry operable to communicate over the links  106   a - 106   f . The devices  110   a - 110   b  may, for example, be “next generation” or “new” MoCA nodes operable concurrently communicate on the old band  302  and the new band  304 . 
         [0014]    Thus, the example network  100  is mixed mode in that it comprises old and new nodes which support different bandwidths/frequency bands. The ability of nodes  102 ,  110   a , and  110   b  to communicate on the old and new bands, and the ability of the nodes  104   a  and  104   b  to communicate on only the old bands may be taken into account when granting reservation requests on the network. In the example network  100 , a reservation grant may be a grant to not only one or more timeslots but also to one or both of the bands  302  and  304 . 
         [0015]      FIG. 2  is a general block diagram representing an example implementation of any of the MoCA devices of  FIG. 1  (e.g., devices  102 ,  104   a ,  104   b ,  110   a ,  110   b , etc.). The example device  200  comprises a transceiver  202  and a chipset  204 . 
         [0016]    Where the device  200  represents one of the devices  102 ,  110   a , and  110   b , the transceiver  202  is operable to transmit and receive on both bands  302  and  304  concurrently (or simultaneously) and on either band  302  and  304  separately. Where the device  200  represents one of the devices  104   a  and  104   b , the transceiver  202  is operable to transmit and receive on only band  302 . 
         [0017]    The chipset  204  comprises a processor (e.g., x86 based, ARM based, an FPGA, ASIC, etc.)  206 , memory  208  (e.g., DRAM, nonvolatile storage, a non-transitory machine-readable storage medium, etc.), and peripheral circuitry  210  (e.g., bus adaptor(s), LAN adaptor(s), etc.). When the device  200  represents the network controller (NC)  102 , the processor  206 , using memory  208 , operates to decide whether to grant or deny reservation requests received via transceiver  202 , determine which timeslot(s) and frequency(ies) to allocate for granted reservation requests, and to provide grant or denial messages to the transceiver  202  for transmission onto the cable  106 . This may, for example, comprise the processor  206  performing the process described below with reference to  FIG. 5 . 
         [0018]      FIGS. 4A-4G  illustrate various combinations of concurrent communications on the MoCA network of  FIG. 1 . Which transmissions may be scheduled concurrently may depend on the network topology and which devices are to transmit and which device(s) are to receive the two (or more) transmissions. For example, if cables  106   d  and  106   f  are short and cable  106   c  is long, and if device  104   a  is transmitting to device  102  on band  302  at the same time that device  102  is transmitting to device  110   b  on band  304 , the signal from  104   a  may drown out the signal from device  102  at the device  110   b  (e.g., even though such signals are ideally in different bands). Accordingly, the network controller  102  may maintain data structures that indicate which bitloading, Tx power, and/or other parameters are to be used for a plurality of possible network statuses, where each different possible network status may correspond to a unique combination of two or more of the following parameters: devices in transmit mode, devices in receive mode, and devices that are idle. The data structures may indicate combinations of transmissions that are not reliable and should be prevented. For example, if a transmission from device  104   a  to device  102  should not be concurrent with a transmission from device  102  to device  110   b , the data structure may indicate that a Tx power of 0 dBm is to be used for communications from device  104   a  to device  102  when concurrent with a transmission from device  102  to device  110   b.    
         [0019]    In some instances, the impedance that a device  102 ,  104 , or  110  presents to the network  100  may depend on whether it is in transmit, receive, or idle mode. Accordingly, the different network statuses may take this into account. In an example implementation, however, each device may be configured (e.g., natively or through an adapter placed between the device and the cabling  106 ) to present a uniform impedance regardless of its mode. This may reduce the number of different statuses that need to be tracked by the data structures. 
         [0020]    In the example scenario shown in  FIG. 4A , device  102  is transmitting to one or both of devices  110   a  and  110   b . Since all devices involved are next-generation devices, both bands  302  and  304  are used for the transmission. Note that the bands illustrated in  FIGS. 4A-4G  may, for example, coincide with the example bands illustrated in  FIG. 3 . 
         [0021]    In the example scenario shown in  FIG. 4B , device  102  is transmitting to one or both of devices  104   a  and  104   b . Since devices  104   a  and  104   b  are old devices which do not support band  304 , the transmission only uses band  302 . As a result, band  304  is available. The network  100  may take advantage of this by scheduling another concurrent transmission from  102  to one or both of  110   a  and  110   b  on band  304 . Which, if any, of these possible concurrent transmissions may be scheduled may depend on the network topology, and may be determined by reference to data structures holding bitloading tables and/or other transmission parameters. 
         [0022]    In the example scenario shown in  FIG. 4C , one or both of devices  110   a  and  110   b  is/are transmitting to device  102 . Since all devices involved are next-generation devices, both bands  302  and  304  are used for the transmission. 
         [0023]    In the example scenario shown in  FIG. 4D , one of devices  104   a  and  104   b  is transmitting to device  102 . Since devices  104   a  and  104   b  are old devices which do not support band  304 , the transmission only uses band  302 . As a result band  304  is available. The network  100  may take advantage of this by scheduling another concurrent transmission from one of devices  110   a  and  110   b  to device  102  on band  304 . Which, if any, of these possible concurrent transmissions may be scheduled may depend on the network topology, and may be determined by reference to data structures holding bitloading tables and/or other transmission parameters. 
         [0024]    In the example scenario shown in  FIG. 4E , one of devices  110   a  and  110   b  is transmitting to the other of devices  110   a  and  110   b . Since  110   a  and  110   b  are next-generation devices, both bands  302  and  304  are used for the transmission. 
         [0025]    In the example scenario shown in  FIG. 4F , one of devices  110   a  and  110   b  is transmitting to one or both of devices  104   a  and  104   b . Since devices  104   a  and  104   b  are old devices which do not support band  304 , the transmission only uses band  302 . As a result, band  304  is available. The network  100  may take advantage of this by scheduling another concurrent transmission, on band  304 , from the already transmitting one of devices  110   a  and  110   b  to the other one of devices  110   a  and  110   b  and/or to device  102 . Which, if any, of these possible concurrent transmissions may be scheduled may depend on the network topology, and may be determined by reference to data structures holding bitloading tables and/or other transmission parameters. 
         [0026]    In the example scenario shown in  FIG. 4G , one of devices  104   a  and  104   b  is transmitting to the other of devices  104   a  and  104   b . Since devices  104   a  and  104   b  are old devices which do not support band  304 , the transmission only uses band  302 . As a result band  304  is available. The network  100  may take advantage of this by scheduling another concurrent transmission, on band  304 , from one of devices  110   a ,  110   b , and  102  to another one or more of devices  110   a ,  110   b , and  102 . Which, if any, of these possible concurrent transmissions may be scheduled may depend on the network topology, and may be determined by reference to data structures holding bitloading tables and/or other transmission parameters. 
         [0027]      FIG. 5  is a flowchart illustrating an example process (or method) for granting reservation requests in a mixed-mode MoCA network. The process begins in block  502  when a transmission from N1 to N2 (where ‘N1’ and ‘N2’ represent any arbitrary two of nodes  102 ,  104   a ,  104   b ,  110   a , and  110   b , for example) is scheduled for timeslot T. 
         [0028]    In block  504 , the network controller (NC) determines whether both N1 and N2 support band  304  (i.e., are they both “next-generation” nodes). This may be determined, for example, from information received when the nodes registered with the network controller. If both nodes are next generation nodes, then the process advances to block  506 . 
         [0029]    In block  506 , the network controller determines whether the communication from N1 to N2 needs both bands  302  and  304 . This may be determined from characteristics of the reservation request, for example (e.g., bandwidth requirements, data rate requirements, amount of data to communicate, etc.). If the communication does need both bands, the process advances to block  508 . Otherwise, the process advances to block  510 . 
         [0030]    In block  508 , the network controller allocates both bands  302  and  304  during timeslot T to the communication from N1 to N2. 
         [0031]    In block  520 , scheduling for timeslot T is complete. 
         [0032]    Returning to block  506 , if the communication from N1 to N2 does not need both bands, then the process advances to block  510 . 
         [0033]    In block  510 , only new band  304  during timeslot T is allocated to the communication between N1 and N2. 
         [0034]    In block  514 , the network controller checks pending reservation requests to find one that is suitable (e.g., based on its urgency) for scheduling during timeslot T and that either cannot use, or does not need, new band  304 . For purposes of discussion it will be assumed this reservation request is for a communication from N3 to N4 (where ‘N3’ and ‘N4’ represent any arbitrary two of nodes  102 ,  104   a ,  104   b ,  110   a , and  110   b , for example). 
         [0035]    In block  516 , bitloading tables are checked to determine whether a communication from N1 to N2 on band  304  concurrent with a communication between N3 and N4 on band  302  is acceptable (i.e., will it result in a sufficient likelihood of successful communication). If so, the process advances to block  518 . If not, the process returns to block  514  to find another candidate pair N3 and N4 (or, in some instances, a timeout may occur and the network controller may settle for only N1 to N2 on band  304  during timeslot T). 
         [0036]    In block  518 , old band  302  during timeslot T is allocated to the communication between N3 and N4. 
         [0037]    Returning to block  504 , if N1 and N2 do not both support new band  304 , then the process advances to block  512 . 
         [0038]    In block  512 , only old band  302  during timeslot T is allocated to the communication between N1 and N2. 
         [0039]    In block  522 , the network controller checks pending reservation requests to find one that is suitable (e.g., based on its urgency) for scheduling during timeslot T and that can use the new band  304  (i.e., is between next generation nodes), and that does not need the old band  302 . For purposes of discussion it will be assumed this reservation request is for a communication from N3 to N4 (where ‘N3’ and ‘N4’ represent any arbitrary two of nodes  102 ,  104   a ,  104   b ,  110   a , and  110   b , for example). 
         [0040]    In block  524 , bitloading tables are checked to determine whether a communication from N1 to N2 on old band  302  concurrent with a communication between N3 and N4 on new band  304  is acceptable (i.e., will it result in a sufficient likelihood of successful communication). If so, the process advances to block  526 . If not, the process returns to block  522  to find another candidate pair N3 and N4 (or, in some instances, a timeout may occur and the network controller may settle for only N1 to N2 on band  302  during timeslot T). 
         [0041]    In block  526 , new band  304  during timeslot T is allocated to the communication between N3 and N4. 
         [0042]    As utilized herein the terms “circuits” and “circuitry” refer to physical electronic components (i.e. hardware) and any software and/or firmware (“code”) which may configure the hardware, be executed by the hardware, and or otherwise be associated with the hardware. As used herein, for example, a particular processor and memory may comprise a first “circuit” when executing a first one or more lines of code and may comprise a second “circuit” when executing a second one or more lines of code. As utilized herein, “and/or” means any one or more of the items in the list joined by “and/or”. As an example, “x and/or y” means any element of the three-element set {(x), (y), (x, y)}. In other words, “x and/or y” means “one or both of x and y”. As another example, “x, y, and/or z” means any element of the seven-element set {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)}. In other words, “x, y and/or z” means “one or more of x, y and z”. As utilized herein, the term “exemplary” means serving as a non-limiting example, instance, or illustration. As utilized herein, the terms “e.g.,” “for example,” “exemplary,” and the like, set off lists of one or more non-limiting examples, instances, or illustrations. As utilized herein, circuitry is “operable” to perform a function whenever the circuitry comprises the necessary hardware and code (if any is necessary) to perform the function, regardless of whether performance of the function is disabled or not enabled (e.g., by a user-configurable setting, factory trim, etc.). 
         [0043]    The present method and/or system may be realized in hardware, software, or a combination of hardware and software. The present methods and/or systems may be realized in a centralized fashion in at least one computing system, or in a distributed fashion where different elements are spread across several interconnected computing systems. Any kind of computing system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computing system with a program or other code that, when being loaded and executed, controls the computing system such that it carries out the methods described herein. Another typical implementation may comprise an application specific integrated circuit or chip. Some implementations may comprise a non-transitory machine-readable (e.g., computer readable) medium (e.g., FLASH drive, optical disk, magnetic storage disk, or the like) having stored thereon one or more lines of code executable by a machine, thereby causing the machine to perform processes as described herein. 
         [0044]    While the present method and/or system has been described with reference to certain implementations, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present method and/or system. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present disclosure without departing from its scope. Therefore, it is intended that the present method and/or system not be limited to the particular implementations disclosed, but that the present method and/or system will include all implementations falling within the scope of the appended claims.