Patent Publication Number: US-9407507-B2

Title: Topology discovery in a hybrid network

Description:
RELATED APPLICATIONS 
     This application claims the priority benefit of U.S. Provisional Application Ser. No. 61/529,224 filed Aug. 30, 2011. 
    
    
     BACKGROUND 
     Embodiments of the inventive subject matter generally relate to the field of communication systems and, more particularly, to a mechanism for discovery of devices in a hybrid communications network. 
     Hybrid communications networks typically comprise multiple networking technologies (e.g., wireless local area network (WLAN) technologies, powerline communication technologies, Ethernet technologies, etc.) that are interconnected using bridging-capable devices that forward packets between devices utilizing the different network technologies and media in order to form a single extended communication network. A convergent communications network may also be referred to as a hybrid communications network. Typically, the communication mechanisms, and protocol specifics (e.g., device and topology discovery, bridging to other networks, etc.) are unique to each networking technology. The convergent communications network can comprise hybrid communication devices and conventional (or legacy) communication devices. 
     SUMMARY 
     Various embodiments provide a discovery protocol allowing nodes that are interested in knowing a network topology to discover other nodes in the network. The discovery protocol may include topology discovery messages and topology query messages. A node may issue topology discovery messages upon powering up, at periodic intervals, or upon detecting a change in network topology. The topology discovery messages may be broadcast to all nodes or a subset of nodes on a network and may identify the issuing node to the network. In some embodiments, more than one type of topology discovery messages may be issued substantially simultaneously, for example, a first type of topology discovery messages for P1905.1 compliant devices and a second type of legacy discovery messages for IEEE 802.1D compliant devices. 
     Nodes on the network that are interested in acquiring further details on the network topology can issue topology query messages. A topology query message may be sent to a particular node (known through the topology discovery messages) to request a response from the receiving node regarding the neighboring nodes of the receiving node. In some embodiments, the topology query may be a onetime request and the receiving node may provide a single response. In alternative embodiments, the topology query may be a subscription request and the receiving node may provide a response when the receiving node detects a change in the network topology. In either case, the querying node can use the response data to discover other nodes and to send the discovered nodes topology query messages such that the querying node can determine a network topology to a desired level of depth. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. 
         FIG. 1  is an example block diagram illustrating a system for determining a topology in a hybrid network; 
         FIG. 2  is a flow diagram illustrating example operations for determining a topology in a hybrid network; 
         FIG. 3  illustrates an example sequence diagram for determining a topology in a hybrid network; 
         FIG. 4  illustrates example operations for fragmenting messages that exceed a maximum payload size; and 
         FIG. 5  is an example block diagram of one embodiment of an electronic device including a mechanism for discovery of legacy network devices, hybrid network devices and bridges in a hybrid communications network. 
     
    
    
     DESCRIPTION OF EMBODIMENT(S) 
     This specification includes references to “one embodiment” or “an embodiment.” The appearances of the phrases “in one embodiment” or “in an embodiment” do not necessarily refer to the same embodiment. Particular features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure. 
     Various units, circuits, or other components may be described or claimed as “configured to” perform a task or tasks. In such contexts, “configured to” is used to connote structure by indicating that the units/circuits/components include structure (e.g., circuitry) that performs those task or tasks during operation. As such, the unit/circuit/component can be said to be configured to perform the task even when the specified unit/circuit/component is not currently operational (e.g., is not on). The units/circuits/components used with the “configured to” language include hardware—for example, circuits, memory storing program instructions executable to implement the operation, etc. Additionally, “configured to” can include generic structure (e.g., generic circuitry) that is manipulated by software and/or firmware (e.g., an FPGA or a general-purpose processor executing software) to operate in manner that is capable of performing the task(s) at issue. 
     The terms “first”, “second” etc. are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.). For example, in a P1905.1 compliant network, the terms “first” and “second” messages can be used to refer to any two messages. In other words, the “first” and “second” messages are not limited to logical occurrences 0 and 1. 
     The term “based on” is used to describe one or more factors that affect a determination. This term does not foreclose additional factors that may affect a determination. That is, a determination may be solely based on those factors or based, at least in part, on those factors. Consider the phrase “determine A based on B.” While B may be a factor that affects the determination of A, such a phrase does not foreclose the determination of A from also being based on C. In other instances, A may be determined based solely on B. 
     The description that follows includes example systems, methods, techniques, instruction sequences, and computer program products that embody techniques of the present inventive subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, although in some embodiments the topology discovery mechanism can be implemented for hybrid communications networks comprising wireless local area network (WLAN) devices (e.g., IEEE 802.11n devices), powerline network devices (e.g., HomePlug AV devices) and Ethernet devices, in other embodiments the topology discovery mechanism can be implemented in hybrid communications networks that may comprise other suitable types of network devices that implement other standards/protocols (e.g., WiMAX, etc.). In other instances, well-known instruction instances, protocols, structures, and techniques have not been shown in detail in order not to obfuscate the description. 
     A hybrid communication network is typically formed by interconnecting communication networks (that support different communication protocols) across different network technologies and communication media. A Convergent Digital Home Network (CDHN) is one example of such a hybrid network, although many other types of hybrid networks exist. The hybrid communications network can comprise multi-interface communication devices (“hybrid devices”) that are configured to operate across multiple networking technologies as well as conventional, single-interface communication devices (“legacy devices”). It is desirable for the hybrid devices and legacy devices to implement topology discovery and other information exchange protocols to advertise their presence to other devices in the hybrid communications network. For proper packet routing and to enable power saving and other optimizations, the devices on the network should be aware of the topology of the hybrid communications network. Existing topology discovery techniques may rely on manual configuration of network parameters, or explicit provision of topology information that can be too complicated for users. 
     Various embodiments are disclosed for topology discovery and message structures in a hybrid communication network (e.g., a CDHN). Although the following disclosure is described in terms of P1905.1 compliant networks and devices for ease of understanding, the disclosed embodiments may be applied to other types of networks and technologies. A hybrid communications network may allow for the utilization and interfacing of heterogeneous networking technologies. Example heterogeneous networking technologies may include powerline networks (IEEE P1901), WiFi (IEEE 802.11), Ethernet (IEEE 802.3) and MoCA 1.1, among others. Hybrid devices may be capable of dynamic interface selection for transmission of packets arriving from any interface (e.g., upper protocol layers or underlying network technologies). End-to-end Quality of Service (QOS) may also be supported. In some embodiments, the hybrid communications network may interface with another network (e.g., a LAN provided by a service provider). The topology discovery mechanisms described herein may allow devices to determine the topology for connectivity of the whole network (or a subset of the network). In addition, the message structures described herein may allow for handling of fragmentation and provide general information (e.g., source interface address, destination interface address, etc.) of the message. Such message structures may be used in topology discovery, security, and network configuration, among other types of protocols. 
     In particular embodiments, the disclosed topology discovery protocol may enable devices (e.g., P1905.1 compliant devices) to discover other devices (e.g., P1905.1 compliant devices, legacy devices, etc.) in a hybrid network such as a CDHN. The topology discovery protocol may also enable devices to populate a topology database. For instance, the topology database may be a P1905.1 topology database. The topology discovery protocol may also enable updating of the topology database in the event of a change in network topology. 
     In various embodiments, the topology discovery protocol may enable devices to determine which devices are reachable by it, and by extension, a device (e.g., a mapper of the device) may infer a more complete network topology. The protocol may also enable the devices to be notified by other devices of any changes in network topology. 
       FIG. 1  is a block diagram illustrating an example system for determining a network topology in a hybrid communications network  100 . As described above, the hybrid communications network  100  can comprise communication devices (e.g., hybrid devices, bridges, legacy devices, etc.) that implement one or more communication protocols (e.g., WLAN, HomePlug AV, Ethernet, etc.), based on various networking standards and operating either wirelessly or over various wired media (powerline, coax cable, unshielded twisted pair telephone cable, CAT5 shielded twisted pair cable, etc.). In some implementations, the hybrid devices can be electronic devices that comprise bridging capabilities across multiple types of network interfaces in addition to communication capabilities over multiple types of network interfaces. Such hybrid devices may be referred to as “hybrid bridges.” The hybrid devices can also be electronic devices that comprise communication capabilities over multiple types of network interfaces but do not comprise bridging capabilities. Such hybrid devices may be referred to as “hybrid communication devices.” In some implementations, the legacy devices can be electronic devices that comprise bridging capabilities in addition to communication capabilities, which can be referred to herein as “legacy bridges.” The legacy devices can also be electronic devices that comprise communication capabilities but do not comprise bridging capabilities. Such legacy devices may be referred to as “legacy communication devices.” In  FIG. 1 , example hybrid communications network  100  comprises two network segments  120  and  122 . The network segment  120  comprises hybrid devices  102  and  116 , and a legacy device  106 . The network segment  122  comprises a hybrid device  104  and a legacy device  108 . A bridge  110  couples the network segment  120  and the network segment  122 . The bridge  110  may be either a hybrid bridge or a legacy bridge. The hybrid device  102  includes a topology discovery unit  112  and a mapper unit  114 . Likewise, although not depicted in  FIG. 1 , the hybrid devices  104  and  116  can also optionally include their own respective device topology discovery units and mapper units. In some embodiments, the hybrid devices  102 ,  104 , and/or  116  can be hybrid bridges or hybrid communication devices. Likewise, the legacy devices  106  and  108  can be legacy bridges or legacy communication devices. 
     In some implementations, the hybrid devices  102 ,  104 , and  116  can include multiple communication interfaces, each of which couples the hybrid device to different types of communication networks. For example, the hybrid device  102  can include three communication interfaces (e.g., a powerline interface, an Ethernet interface, and a wireless local area network (WLAN) interface) that enable the hybrid device  102  to connect to a powerline communication network, an Ethernet, and a WLAN, respectively. It is noted that even though  FIG. 1  does not explicitly show multiple communication interfaces for the hybrid devices  102 ,  104  and  116 , the hybrid devices  102 ,  104  and  116  can comprise two or more communication interfaces that couple the hybrid devices to two or more communication networks. The legacy devices typically comprise only one communication interface for communication via the corresponding communication network. For example, the legacy devices  106  and  108  may comprise an Ethernet interface for communication via Ethernet. 
     In some implementations described herein, a two stage topology discovery protocol may be used. The two stage topology discovery protocol may include a first stage where devices announce their presence by issuing topology discovery messages to other nodes in the hybrid communications network  100 , and a second stage where devices interested in determining a network topology issue topology query messages to selected nodes in the hybrid communications network  100 . A mapper unit  114  may use the information obtained in responses to the topology query messages to build a topology map in a topology database. Thus during the first stage, some or all of hybrid devices  102 ,  104 , and  116  can broadcast topology discovery messages to advertise their presence in the hybrid communications network  100 . For example, hybrid device  116  can broadcast a topology discovery message including an identifier of the hybrid device  116  to announce its presence in the hybrid communications network  100  to the hybrid devices  102  and  104 . 
     In some embodiments, hybrid communications network  100  includes P1905.1 compliant devices. In such embodiments, the two stage topology discovery protocol may include a Multicast Discovery Mechanism that is used during the first stage and a Unicast Topology Discovery Mechanism that is used during the second stage. The Unicast Topology Discovery Mechanism may include a Topology Query/Response Procedure and/or a Topology Subscription/Notification Procedure, as described herein. During the second stage of the topology discovery protocol, the Unicast Topology Discovery Mechanism may enable a P1905.1 mapper (e.g., mapper unit  114  of hybrid device  102 ) to obtain another P1905.1 compliant device&#39;s neighbor information. For example, a P1905.1 mapper may construct a more complete network map by sending a topology query or topology subscription request messages to each of its neighboring P1905.1 compliant devices to obtain topology information regarding the neighboring device&#39;s neighbors (via topology response or topology notification messages). The Topology Query/Response Procedure may enable a device to obtain information about another device as well as another device&#39;s neighbors. Also, in some implementations, the device may implement the Topology Subscription/Notification Procedure that may enable a device to subscribe to receive notification of any changes in topology at another device. Upon detection of a change in topology, a message (e.g., a topology notification message) may be sent to a subscriber device. 
     In one embodiment, during the first stage of the topology discovery protocol, a device may send multiple types of multicast messages on each of its interfaces. For example, a P1905.1 compliant device may send a legacy discovery message and a topology discovery message on each of its interfaces. In some embodiments, the legacy discovery message may be used to add information about legacy devices that are reachable in the hybrid network and that may not have implemented the P1905.1 protocol. In addition, the legacy discovery message may, in combination with a topology discovery message, be used to determine a type of bridge between a P1905.1 device and other devices on the hybrid communications network based at least in part on whether or not the bridge forwards either the legacy discovery message or the topology discovery message, as further described below. The legacy discovery message in some embodiments is an LLDP (Link Layer Discovery Protocol) compliant discovery message that may be sent to the LLDP nearest bridge multicast address. The topology discovery message may be sent to a predetermined multicast address such as the P1905.1 Multicast Address. The legacy discovery message and the topology discovery message may be forwarded in different manners by different types of devices. For example, a legacy discovery message may be forwarded by P1905.1 compliant bridges and IEEE 802.1-D compliant legacy bridges. The topology discovery message may be forwarded by IEEE 802.1-D compliant legacy bridges, but in some cases, not by P1905.1 compliant bridges. 
     A P1905.1 compliant device (e.g., a mapper unit  114  of the hybrid device  102 ) may construct a more complete network map by sending a topology query message or topology subscription request message to a neighboring P1905.1 compliant device to obtain topology information regarding the neighboring device&#39;s neighbors (e.g., via a topology response message or a topology notification message sent by the neighboring device in response to the topology query message or topology subscription request message). The P1905.1 compliant device may send the topology query messages or the topology subscription request messages to some or all of the neighboring device&#39;s P1905.1 compliant neighbors, and so forth in order to obtain network topology information to a desired depth. It is noted that, in some implementations, a first device does not have to be physically adjacent to a second device in order to be considered a “neighbor” device.” Instead, the first device may only be “communicatively located adjacent” to at least one interface of the second device in order for the first device and second device to be neighbors. In particular embodiments, a device is a “neighbor” if the device is reachable without being bridged by another P1905.1 compliant device. Some devices may be reachable but not neighbors, for example, a P1905.1 compliant or legacy device bridged by another P1905.1 compliant device. 
     In some embodiments, the Multicast Discovery Procedure, Topology Query/Response Procedure, and the Topology Subscription/Notification Procedure may enable P1905.1 compliant devices to discover, build, and/or maintain network topology information. The various mechanisms or procedures may utilize one or more of the following messages: topology discovery message (multicast), legacy discovery message (multicast), topology query message (unicast), topology response message (unicast), topology subscription request message (unicast), and topology notification message (unicast). Further details on the messages listed above and the use of the messages by devices and topology discovery units  112  within hybrid devices in hybrid communications network  100  are provided below with respect to  FIGS. 2-4 . 
       FIG. 2  is a flow diagram illustrating example operations in a method  200  for determining a topology in a hybrid communications network. Method  200  begins at block  202  when a device in a hybrid communications network (e.g., a CDHN) issues one or more topology discovery messages. The messages may include one or more message TLV (type, length, value) portions. In one embodiment, a P1905.1 compliant device may transmit the topology discovery message on all its interfaces, addressed to a P1905.1 Multicast Address. Transmission may occur for a variety of reasons. For instance, a topology discovery message may be sent when power is applied to the P1905.1 compliant device. Further, the topology discover message may be sent periodically, e.g., the topology discover message may be sent a certain amount of time (e.g., 60 seconds) after the last topology discovery message was sent. As another example, a topology discovery message may be sent when the transmitting device detects a change in topology. The topology change may be indicated by a change in any of the information received in a topology query response message. The topology change may also be determined by a transmitting device in response to detecting a neighboring device of the transmitting device can no longer communicate with the transmitting device. As a fourth example, a topology discovery message may be sent by a P1905.1 compliant device when a new device&#39;s topology discovery message is received by the P1905.1 compliant device. In some embodiments, a P1905.1 compliant device receiving additional topology discovery messages from new devices may defer sending its own additional topology discovery messages until a time period (e.g., 60 seconds) has elapsed since the last topology discovery messages was sent by the P1905.1 compliant device. Those of skill in the art having the benefit of the disclosure will appreciate that other implementation-dependent occasions may also trigger a topology discovery message to be sent. The topology discovery message may include a session ID, which, in some embodiments, may be generated upon device initialization (e.g., power up or reset) and may be unique over a period of time. A session identifier type TLV may be included with a topology discovery message. An example session identifier type TLV is shown in Table 1. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Field 
                 Length  
                 Value 
                 Description 
               
               
                   
               
             
            
               
                 TLV type 
                 1 octet 
                 1 
                 Session Identifier Type 
               
               
                 TLV Length 
                 1 octet 
                 4 
                 # octets in ensuing field 
               
               
                 TLV Value 
                 4 octets 
                   
                 Session identifier 
               
               
                   
               
            
           
         
       
     
     In one embodiment, a P1905.1 compliant device may transmit a legacy discovery message on all its interfaces, whenever a topology discovery message is sent. In other words, a P1905.1 compliant device may send both a topology discovery message and a legacy discovery message on all of the P1905.1 compliant device&#39;s interfaces. The legacy discovery message may include LLDP packets sent to the LLDP multicast address (using the LLDP Ethertype). The legacy discovery message may contain the sending device&#39;s P1905.1 device ID. An example Ethernet frame header information on which a legacy discovery message may be carried is described in Table 2. 
     
       
         
           
               
               
               
             
               
                 TABLE 2 
               
               
                   
               
               
                 Field 
                 Length 
                 Description 
               
               
                   
               
             
            
               
                 SA 
                 6 octets 
                 Interface specific MAC ID of the  
               
               
                   
                   
                 interface of the P1905.1 compliant  
               
               
                   
                   
                 device from which a P1905.1 
               
               
                   
                   
                 Topology Discovery Message 
               
               
                   
                   
                 is Transmitted 
               
               
                 DA 
                 6 octets 
                 01-80-C2-00-00-0E 
               
               
                   
                   
                 Nearest bridge group MAC address 
               
               
                 Ethertype 
                 2 octets 
                 88-CC 
               
               
                   
                   
                 LLDP Ethertype 
               
               
                 Payload 
                 46-1500 
                 LLDPDU 
               
               
                   
                 octets 
               
               
                   
               
            
           
         
       
     
     In one embodiment, the following LLDP TLVs may be used to form a LLDPDU (Link Layer Discovery Protocol Data Unit): a chassis ID TLV, a port ID TLV, a time to live TLV, and an end of LLDPDU TLV. The chassis ID TLV may include a chassis ID subtype, which may be set to 4-MAC address. The chassis ID may be set to the P1905.1 MAC address. The port ID TLV may include a port ID subtype, which may be set to 3 (MAC address (IEEE 802)). The port ID may be set to the MAC ID of the interface on which the message is transmitted. The time to live TLV may include a time to live (TTL) value (e.g., 180 seconds). 
     In one embodiment, a P1905.1 message container may be used to carry TLVs from a transmitting device to one or more receiving devices. For example, the TLV may be transmitted to one receiving device if the destination address is a unicast address and to more than one receiving device if the destination address is a multicast address. If the message is too large to fit within an Ethernet frame, multiple fragments may be created at the TLV boundaries to form multiple messages. Table 3 includes an example of an Ethernet frame header on which the message is carried: 
                                     TABLE 3                       Field   Length   Description                          SA   6 octets   Interface specific MAC ID of the                    P1905.1 compliant device from                    which a P1905.1 compliant                    Packet is Transmitted           DA   6 octets   Interface specific MAC ID of the                    Recipient P1905.1 compliant                    device for unicast messages or                    New P1905.1 Multicast MAC                    address for multicast messages           Ethertype   2 octets   P1905.1 Ethertype           Payload   46-1500   P1905.1 Message Body                octets   (see Table 4below)                        
Table 4 includes an example P1905.1 message container format.
 
                                 TABLE 4                  TA   6 octets       P1905.1 MAC ID of transmitting device       RA   6 octets       For unicast message, this is the P1905.1                   MAC ID of receiving device                   For multicast message, this is a New                   P1905.1 Multicast MAC address for                   multicast messages       Media   6 octets       The Egress Media Type of the port on       Type           which the message is transmitted       Message   1 octet   0x00 or   0x00: Advertisement Message       Type       0x01 if DA   0x01: Global Command Message               is set to the   0x02: Query Message               P1905.1   0x03: Query Response Message               Multicast   0x04: Subscription Request Message               address   0x05: Subscription Confirm Message               0x02~0x07   0x06: Notification Message               otherwise   0x07: Notification Confirm Message                   0x08~0xFF: Reserved       Message   1 octet       0x00: Topology       Sub-Type           0x01: Security                   0x02: Link Performance Metric                   0x03~0xFF: Reserved       Transaction    4 octets       Unique Identifier for a transaction;       identifier           A response shall use the same                    transaction identifier as                    its corresponding request       Fragment   1 octet       Identifies the fragment number for        Number           a given Transaction identifier       Last   1 bit       ‘1’: last fragment       Fragment           ‘0’: not last fragment       Indicator                   Reserved   7 bits   All 0&#39;s   All values are reserved       field                   P1905.1   Variable       TLV(s) (see above)       Protocol   length               TLVs                   End of   2 octets       End of Message TLV (see Table 4)       Message                   TLV                    
Table 5 includes an example end of message TLV as follows:
 
     
       
         
           
               
               
               
               
             
               
                 TABLE 5 
               
               
                   
               
               
                 Field 
                 Length  
                 Value 
                 Description 
               
               
                   
               
             
            
               
                 TLV type  
                 1 octet 
                 0x00 
                 End of Message TLV 
               
               
                 TLV length 
                 1 octet 
                 0x00 
                 # octets in ensuing field 
               
               
                   
               
            
           
         
       
     
     At block  204  a first node receives the one or more discovery messages issued at block  202  and may use the information in the message to update a network topology maintained in the first node. In some embodiments, the Multicast Discovery Mechanism and message formats described above may allow for a P1905.1 compliant device to discover the existence of other P1905.1 compliant devices and legacy devices, to the extent possible, through the use of the topology discovery message and the legacy discovery message. The legacy discovery message, in combination with the topology discovery message, may be used to assist detection of the existence in the hybrid network topology of one or more legacy bridges between a transmitter and receiver of the message. A P1905.1 compliant device may infer that one of its interfaces has another P1905.1 compliant device as a neighbor without the intermediate presence of a conformant legacy bridge when it receives, on that interface, both a topology discovery message and a legacy discovery message transmitted by the same 1905.1 device. A P1905.1 compliant device may infer the presence of one or more legacy bridges between it and another P1905.1 compliant device when it receives only a topology discovery message transmitted by the other P1905.1 compliant device and not a legacy discovery message from that device on that interface. In the event that a legacy discovery message is dropped or damaged, a P1905.1 compliant device may make an incorrect inference that a legacy bridge is present between it and another P1905.1 compliant device when in fact a legacy bridge is not present. Transmission of both types of messages at periodic intervals may allow the P1905.1 compliant device to correct the improper inference of the presence of a legacy bridge because the receiving device may nevertheless subsequently receive another legacy discovery message and update its information to correct its topology information by removing the incorrectly inferred legacy bridge. 
     Blocks  206 - 210  describe a Topology Query/Response Procedure that may allow for a P1905.1 compliant device to query and retrieve topology information from another device through the use of a topology query message and a topology response message. 
     At block  206 , in various embodiments, the first node issues a topology query message. A topology query message may be sent from one P1905.1 compliant device to another at any time. As described herein, the topology query message may be unicast. In some embodiments, no TLV need be included in the topology query message. The topology query message may include the sending device&#39;s P1905.1 device ID and a unique transaction ID for the query. If the querying device does not receive a topology response message containing the same transaction ID that was included in the topology query message, it may resend the topology query message. 
     At block  208 , the first node receives one or more responses to the topology query message. In some embodiments, upon receiving a topology query message, a P1905.1 compliant device may respond with a topology response message. In some embodiments, the P1905.1 compliant device responds to a received topology query message with a topology response message. One topology response message may be sent per topology query message. A topology response message may be sent on any port, regardless of the port on which it was received. The topology response message may contain the same transaction ID that was received in the topology query message, the sending device&#39;s P1905.1 device ID, and for each of the receiving device&#39;s ports, the MAC address and media type/subtype of the port, and a list of neighboring legacy devices and neighboring P1905.1 compliant devices reachable via the port. The list of neighboring legacy devices may include, for each neighboring legacy device, the MAC address of the neighboring device&#39;s port, and the number of seconds since traffic of any kind from the neighboring legacy device was seen. The list of neighboring P1905.1 compliant devices may include, for each P1905.1 compliant neighboring device, the neighboring device&#39;s P1905.1 device ID, and the number of seconds since traffic of any kind from the neighboring P1905.1 device was seen. As described herein, the topology response message may be unicast. The following TLVs may be included in the topology response message: a device information type TLV, zero or one legacy neighbor list TLV, and zero or one P1905.1 neighbor list TLV. Table 6 includes an example P1905.1 compliant device information type TLV, Table 7 includes example media types, Table 8 includes an example legacy neighbor list TLV, and Table 9 includes an example neighbor TLV. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 6 
               
               
                   
               
               
                 Field 
                 Length 
                 Value  
                 Description 
               
               
                   
               
             
            
               
                 TLV type 
                 1 octet  
                 2 
                 Device Information Type 
               
               
                 TLV Length 
                 1 octet  
                 15 + . . .  
                 # octets in ensuing field 
               
               
                 TLV Value 
                 6 octets 
                   
                 Interface-specific MAC ID of the  
               
               
                   
                   
                   
                 local interface 
               
               
                   
                 1 octet 
                   
                 Media Type of the local interface  
               
               
                   
                   
                   
                 (see Table 2) 
               
               
                   
                 4 octets 
                   
                 Network membership information  
               
               
                   
                   
                   
                 of the local interface (see Table 2) 
               
               
                   
                 4 octets 
                   
                 Reserved for Capability 
               
               
                   
                 n octets 
                   
                 If Capability indicates bridging 
               
               
                   
                   
                   
                 include n MAC ID&#39;s where the MAC 
               
               
                   
                   
                   
                 ID&#39;s are the MAC addresses of the 
               
               
                   
                   
                   
                 interfaces that this bridge can reach 
               
               
                   
                   
                   
                 Else  
               
               
                   
                   
                   
                 n = 0 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
               
               
             
               
                 TABLE 7 
               
               
                   
               
               
                 (First 4 
                   
                   
                   
               
               
                 bits of 
                 (Second 4 
                   
                 Media-Specific 
               
               
                 octet) 
                 bits of octet) 
                 Description 
                 Information 
               
               
                   
               
             
            
               
                 0 
                 0 
                 IEEE 802.3u  
                 N/A 
               
               
                   
                   
                 Fast Ethernet 
                   
               
               
                   
                 1 
                 IEEE 802.3ab  
                 N/A 
               
               
                   
                   
                 Gigabit Ethernet 
                   
               
               
                   
                 2~15 
                 Reserved 
                 Reserved 
               
               
                 1 
                 0 
                 IEEE 802.11b 
                 Network  
               
               
                   
                   
                 (2.4GHz) 
                 membership:  
               
               
                   
                 1 
                 IEEE 802.11g 
                 6 octets: BSSID 
               
               
                   
                   
                 (2.4GHz) 
                 Role: 2 bits: ‘00’  
               
               
                   
                 2 
                 IEEE 802.11a 
                 AP, ‘01’ SA, ‘10’  
               
               
                   
                   
                 (5GHz) 
                 and ‘11’ are 
               
               
                   
                 3 
                 IEEE 802.11n 
                 reserved 
               
               
                   
                   
                 (2.4GHz) 
                   
               
               
                   
                 4 
                 IEEE 802.11n 
                   
               
               
                   
                   
                 (5GHz) 
                   
               
               
                   
                 5 
                 IEEE 802.11ac 
                   
               
               
                   
                   
                 (5GHz) 
                   
               
               
                   
                 6 
                 IEEE 802.11ad 
                   
               
               
                   
                   
                 (60GHz) 
                   
               
               
                   
                 7~15 
                 Reserved 
                 Reserved 
               
               
                 2 
                 0 
                 IEEE 1901 Wavelet 
                 Network membership: 
               
               
                   
                 1 
                 IEEE 1901 OFDM 
                 AVLN 
               
               
                   
                 2 
                 HomePlug 
                 TBD 
               
               
                   
                   
                 GreenPHY 
                   
               
               
                   
                 3 
                 HomePlug AV 2.0 
                 TBD 
               
               
                   
                 4~15 
                 Reserved 
                 Reserved 
               
               
                 3 
                 0 
                 MoCA v1.1 
                 TBD 
               
               
                   
                 1 
                 MoCAv2.0 
                 TBD 
               
               
                   
                 2~15 
                 Reserved 
                 Reserved 
               
               
                 4~15 
                 0~15 
                 Reserved 
                 Reserved 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
               
               
             
               
                 TABLE 8 
               
               
                   
               
               
                 Field 
                 Length  
                 Value  
                 Description 
               
               
                   
               
             
            
               
                 TLV type 
                 1 octet 
                 3 
                 List of connected legacy neighbors 
               
               
                 TLV Length 
                 1 octet 
                 6 + 8xn  
                 # octets in ensuing field 
               
               
                 TLV Value 
                 6 octets 
                   
                 Interface-specific MAC ID of the  
               
               
                   
                   
                   
                 local interface 
               
               
                   
                 6 octets 
                   
                 Interface-specific MAC ID of  
               
               
                   
                   
                   
                 legacy neighbor 
               
               
                   
                 2 octets 
                   
                 Last time transmission was received  
               
               
                   
                   
                   
                 from this neighbor in seconds 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
               
               
             
               
                 TABLE 9 
               
               
                   
               
               
                 Field 
                 Length  
                 Value 
                 Description 
               
               
                   
               
             
            
               
                 TLV type  
                 1 octet 
                 4 
                 Information on Neighbor P1905.1  
               
               
                   
                   
                   
                 compliant Device 
               
               
                 TLV Length 
                 1 octet 
                 10 + 6xn  
                 # octets in ensuing field 
               
               
                 TLV Value 
                 6 octets 
                   
                 Interface-specific MAC ID of the  
               
               
                   
                   
                   
                 local interface 
               
               
                   
                 6 octets 
                   
                 P1905.1 MAC ID of P1905.1  
               
               
                   
                   
                   
                 compliant neighbor 
               
               
                   
                 2 octets 
                   
                 Last time transmission was received  
               
               
                   
                   
                   
                 from this neighbor in seconds 
               
               
                   
                 1 octet 
                   
                 Existence of legacy bridge(s): 
               
               
                   
                   
                   
                 0: no legacy bridges exist 
               
               
                   
                   
                   
                 1: at least one legacy bridge exists  
               
               
                   
                   
                   
                 between this device and the neighbor 
               
               
                   
                   
                   
                 All other values are reserved 
               
               
                   
               
            
           
         
       
     
     In some embodiments, the topology query messages and the topology response messages issued and received at blocks  206  and  208  respectively may be topology subscription and topology notification messages. The topology subscription messages and topology notification messages may be in addition to, or instead of, the topology query and response messages described above. A Topology Subscription/Notification Procedure may allow a device to subscribe for topology changes at another P1905.1 compliant device. This may be accomplished through unicast messages, which may include: the topology subscription request message, the topology notification message, and the topology notification confirm message. A P1905.1 compliant device may be configured to support a minimum and maximum number of concurrent subscriptions. 
     In one embodiment, a topology subscription request message may be sent from one P1905.1 compliant device to another at any time. A topology subscription request message may contain a requested duration of the subscription. The subscription duration may be modified. For example, the receiving device may assign a duration that is shorter or longer than what was requested and indicate the modification in the topology notification message by including the modified subscription duration. If the subscriber device does not receive a topology notification message in response to a topology subscription request message, it may resend the topology subscription request message. A subscription may include a subscription ID, the sending device&#39;s P1905.1 device ID, and a requested subscription duration (e.g., in seconds). A new subscription ID may create a new subscription while specification of an existing subscription ID may modify an existing subscription. Further, a subscription may be established such that the requesting device is subscribed to topology changes at the target device. A subscriber device may modify the duration or cancel a subscription by sending a topology subscription request message with the subscription ID of the subscription for which modification or cancellation is desired and the modified subscription duration (e.g., zero representing zero seconds to cancel the subscription). A notification subscription request TLV may be included in the message. An example notification subscription request TLV is shown in Table 10. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 10 
               
               
                   
               
               
                 Field 
                 Length 
                 Value  
                 Description 
               
               
                   
               
             
            
               
                 TLV Type  
                 1 octet 
                 5 
                 Notification Subscription 
               
               
                 TLV Length 
                 1 octet 
                 1 
                 # octets in ensuing field 
               
               
                 TLV Value 
                 2 octets 
                   
                 Subscription identifier 
               
               
                   
                 3 octet 
                   
                 The requested duration (in seconds)  
               
               
                   
                   
                   
                 of the subscription; a value of zero  
               
               
                   
                   
                   
                 cancels a subscription 
               
               
                   
               
            
           
         
       
     
     In one embodiment, a P1905.1 compliant device receiving a topology subscription request message may respond by sending a topology notification message to a requesting device when a subscription is established or canceled, and, for the duration of the subscription, for changes in topology. The responding device may modify the requested subscription duration received in the topology subscription request message and include the modified subscription duration in the topology notification message. In some cases, a subscription request may not be accepted. Non-acceptance of a subscription request may be indicated by a value (e.g., zero) sent to the requesting device. A device may cancel or modify an existing subscription by sending a topology notification message with the subscription ID, with the subscription duration appropriately set, to the subscribing device. Cancellation of the subscription may be indicated by a value (e.g., zero representing a duration of zero) in the topology notification message. In some embodiments, a device may send a topology notification message to a subscribing device when a change in topology is detected, which may be indicated by a change in any information that is sent in a topology response message. If the device does not receive a topology notification confirm message in response to a topology notification message, it may resend the message up to a certain number of times. There is no requirement to wait for some period of time after receiving a cancellation before resubscribing. Renewal of a subscription may be performed by sending a subscription request with the same subscription ID. After expiration or cancellation, the requesting device may request a new subscription with a new subscription ID. 
     The topology notification message may include the duration of the subscription and the device&#39;s current topology state. It may also include the sending device&#39;s P1905.1 device ID, the subscription ID of the subscription, the remaining duration, and for each of the device&#39;s ports, the MAC address and media type/subtype of the port, and a list of neighboring legacy devices and neighboring P1905.1 compliant devices reachable via the port. The list of neighboring legacy devices may include, for each neighboring legacy device, the MAC address of the neighboring legacy device&#39;s port, and the number of seconds since traffic of any kind from the neighboring legacy device was seen. The list of neighboring P 1905.1 compliant devices may include the neighboring device&#39;s P 1905.1 device ID, and the number of seconds since traffic of any kind from the neighboring P1905.1 compliant device was seen. The topology notification message may contain the current state of the information. In various embodiments, the following TLVs may be included with the message: one device information type TLV, zero or one legacy neighbor list TLV, and zero or one P1905.1 neighbor TLV. 
     In some embodiments, a P1905.1 compliant device may respond to a received topology notification message with a topology notification confirm message. Upon receiving the notification, the requesting device may store the duration so that it may renew the subscription before expiration. The topology notification confirm message may include the same transaction ID as received in the topology notification message. In one embodiment, no TLVs need be included in the topology notification confirm message. 
     At block  210 , the first node may issue topology query messages or topology subscription request messages to neighboring nodes identified in the response messages received at block  208 . The first node can repeat the topology query process to a desired depth in the network, or until no new devices are discovered. 
     Some or all of the messages above may be throttled or bundled in order to avoid undesirable flooding of a hybrid network with topology discovery protocol messages. For example, in some embodiments, messages may be throttled to a predetermined or configurable message rate. As an example, a network device may be configured to send no more than one message every five seconds. Additionally, a network device may be configured to delay issuing topology discovery messages until a predetermined or configurable amount of time after power up. The delay may be determined differently on different devices so that not all devices transmit discovery requests simultaneously when powered up at or near the same time. 
     Further, a network device may be configured to bundle notification messages so that not every topology change is immediately reported. For example, a network device may be configured to bundle twenty topology changes in a notification message. In other words, a node may be configured to not report any detected topology change until twenty changes have been detected. In some embodiments, bundling may be combined with a timer. For example, a node may be configured to not report any detected topology changes until twenty changes are detected or until ten seconds have elapsed after the last reported change, whichever comes first. 
       FIG. 3  is a sequence diagram illustrating an example sequence of messages that may be exchanged between a subset of devices in a hybrid communications network during a portion of a topology discover procedure. For the purposes of the example, assume that a hybrid communications network includes hybrid device  320 , hybrid device  324 , legacy bridge  322  between hybrid device  320  and hybrid device  324 , hybrid device  326  and legacy device  328 . Further assume that hybrid device  324  and hybrid device  326  are neighbor devices and that legacy device  328  is a neighbor of hybrid device  326 . 
     At some point in time, hybrid device  324  determines that topology discovery messages are to be sent. As noted above, the determination may be due to a power up event, a topology change event, or a timer expiration event. At sequence step  302 , hybrid device  324  may send a topology discovery message to a P1905.1 multicast address. In some embodiments, hybrid device  324  may also send a legacy discovery message (sequence step  304 ) at approximately the same time as the topology discovery message. The topology discovery message and the legacy discovery message include data identifying hybrid device  324  and announce the presence of hybrid device  324  on the hybrid network. In some embodiments, either or both the legacy discovery message and the topology discovery message do not identify any other nodes (e.g., neighbor nodes) other than the sending node (hybrid device  324  in this example). 
     Legacy bridge  322  receives the topology discover message and legacy discovery message. Other devices in the hybrid network may also receive the messages as the messages may be multicast messages. However, to avoid obfuscating the example, only interaction between legacy bridge  322  and hybrid device  324  is illustrated in  FIG. 3  with respect to the multicast discovery messages issued by hybrid device  324 . 
     Legacy bridge  322 , in compliance with legacy communications protocols, may be configured to decline to forward legacy discovery messages. As a result, at sequence step  306 , the topology discovery message is forwarded to hybrid device  320 , while the legacy discovery message is not forwarded. 
     Upon receipt and processing of the topology discovery message, hybrid device  320  may learn that hybrid device  324  is part of the network topology. In addition, because hybrid device  320  received a topology discovery message and did not receive a legacy discovery message, hybrid device  320  may infer that a legacy bridge (e.g., legacy bridge  322 ) exists between hybrid device  320  and hybrid device  324  and can add that information to its view of the network topology. It should be noted that had legacy bridge  322  been a hybrid bridge, in some embodiments both the topology discovery message and the legacy discovery message would have been forwarded by the hybrid bridge. In this case, hybrid device  320  may infer the existence of a hybrid bridge between hybrid device  320  and hybrid device  324  rather than a legacy bridge. 
     For the purposes of this example, assume that hybrid device  320  is configured to maintain more information about the network topology than is available from topology discovery messages or legacy discovery messages. At sequence step  308 , hybrid device  320  sends a topology query message to hybrid device  324 . In response to receiving the topology query message, at sequence step  310  hybrid device  324  sends a topology response message to hybrid device  320 . The topology response message includes a list network nodes that are neighbors of hybrid device  324  and information about the neighboring network nodes (e.g., information identifying the neighboring nodes and the type of neighboring nodes). In this example, hybrid device  326  is included in the list of neighboring nodes. 
     Hybrid device  320  receives the response and, in this example, determines that hybrid device  326  is part of the network topology. At sequence step  312 , hybrid device  320  sends a topology query message to hybrid device  326 . In response, at sequence step  314 , hybrid device  326  sends a topology response message to hybrid device  320 . The topology response message may include a list network nodes that are neighbors of hybrid device  326  and information about the neighboring nodes. In this example, the list may include hybrid device  324  and legacy device  328 . Hybrid device  320  receives the response and may use the information in the response to add to its view of the network topology. In this example, hybrid device  320  already knows about hybrid device  324  and may add information about legacy device  328  to its view of the hybrid network topology. 
     Those of skill in the art having the benefit of the disclosure will appreciate that the example message sequence illustrated in  FIG. 3  is but one example of many message sequences that could take place in a hybrid network, that that other sequences using the above-described messages and methods are possible and within the scope of the inventive subject matter. 
     In some embodiments, the two stage topology discovery protocol described above may be a stateless protocol. The multicast topology discovery message and legacy discovery message announce that a potential change has occurred in a hybrid network topology without detailing changes in the hybrid network topology and thus do not require participating nodes to maintain a communications state. Only those nodes that are interested in obtaining further information about the hybrid network topology need use topology query messages as described above to obtain a current topology for the hybrid network. 
       FIG. 4  illustrates example operations in a method  400  for fragmenting messages that exceed a maximum payload size. The method begins at block  402  by receiving a message (e.g., one of the messages described above). At block  404 , the device determines if the message size exceeds a maximum payload size. If the message size does not exceed the maximum payload size, then at block  406  the message is transmitted. Otherwise In various embodiments, when a P1905.1 compliant device attempts to form a message that exceeds the payload of the Ethernet frame, then at block  408  the device may fragment the message. Fragmenting may include breaking down the message into multiple fragments at TLV boundaries. The transmitting device may sequentially generate a sequence of fragments where each fragment may contain a number of TLVs such that the message may fit the payload of the Ethernet frame. For each generated message with the same sequence number, the transmitting device may assign a unique fragment number to it, starting from 0 (e.g., 0, 1, 2, 3). The transmitting device may set a last fragment indicator field to ‘1’ in the last fragment. A TLV may be too large to fit in a single message. For example, a neighbor list TLV may have a sufficient number of individual neighbor TLVs such that the neighbor list TLV exceeds a maximum message size. In some embodiments, a TLV that is too large to fit into a single message may be divided into multiple TLVs of the same type. For example, assume that a neighbor list having fifty neighbor TLVs is too large to transmit as a single message. The single neighbor list TLV may be divided into multiple neighbor list TLVs, each containing a subset of the original list of neighbor TLVs. The multiple smaller neighbor list TLVs may then be transmitted in separate messages. 
     In some embodiments, if the receiving device receives a message fragment, the receiving device may attempt to reassemble the message. The receiving device may deliver the reassembled message for further processing if all of the fragments have been received. An indication that all fragments have been received may include receiving a fragment with a last fragment indicator. In one embodiment, a receiving device may wait for a time out before discarding received fragments that cannot be reassembled completely to avoid waiting for lost fragments indefinitely. 
     Embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, embodiments of the inventive subject matter may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium. The described embodiments may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic device(s)) to perform a process according to embodiments, whether presently described or not, since every conceivable variation is not enumerated herein. A machine-readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). A machine-readable medium may be a machine-readable storage medium, or a machine-readable signal medium. A machine-readable storage medium may include, for example, but is not limited to, magnetic or optical media, e.g., disk (fixed or removable), tape, CD-ROM, or DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, or Blu-Ray. Storage media may further include volatile or non-volatile memory media such as RAM (e.g. synchronous dynamic RAM (SDRAM), double data rate (DDR, DDR2, DDR3, etc.) SDRAM, low-power DDR (LPDDR2, etc.) SDRAM, Rambus DRAM (RDRAM), static RAM (SRAM), etc.), ROM, erasable programmable memory (e.g., EPROM and EEPROM); Flash memory, non-volatile memory (e.g. Flash memory) accessible via a peripheral interface such as the Universal Serial Bus (USB) interface, etc. Storage media may include microelectromechanical systems (MEMS) or other types of tangible medium suitable for storing electronic instructions. A machine-readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, an electrical, optical, acoustical, or other form of propagated signal (e.g., carrier waves, infrared signals, digital signals, etc.). Program code embodied on a machine-readable signal medium may be transmitted using any suitable medium, including, but not limited to, wireline, wireless, optical fiber cable, RF, or other communications medium. 
     Computer program code for carrying out operations of the embodiments may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN), a personal area network (PAN), or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) 
       FIG. 5  is a block diagram of one embodiment of an electronic device  500  including a mechanism for determining a network topology in a hybrid communications network. In some implementations, the electronic device  500  may be one of a laptop computer, a netbook, a mobile phone, a powerline communication device, a personal digital assistant (PDA), or other electronic systems comprising a hybrid communication unit configured to exchange communications across multiple communication networks (which form the hybrid communications network). The electronic device  500  includes a processor unit  502  (possibly including multiple processors, multiple cores, multiple nodes, and/or implementing multi-threading, etc.). The electronic device  500  includes a memory unit  506 . The memory unit  506  may be system memory (e.g., one or more of cache, SRAM, DRAM, zero capacitor RAM, Twin Transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM, etc.) or any one or more of the above already described possible realizations of machine-readable media. The electronic device  500  also includes a bus  510  (e.g., PCI, ISA, PCI-Express, HyperTransport®, InfiniBand®, NuBus, AHB, AXI, etc.), and network interfaces  504  that include at least one of a wireless network interface (e.g., a WLAN interface, a Bluetooth® interface, a WiMAX interface, a ZigBee® interface, a Wireless USB interface, etc.) and a wired network interface (e.g., an Ethernet interface, a powerline communication interface, etc.). In some implementations, the electronic device  500  may support multiple network interfaces—each of which is configured to couple the electronic device  500  to a different communication network. 
     The electronic device  500  also includes a communication unit  508 . The communication unit  508  comprises a topology discovery unit  512  and a mapper unit  514 . As described above in  FIGS. 1-3 , the communication unit  508  implements functionality to determine a topology for a hybrid communication network (e.g., a CDHN). Any one of these functionalities may be partially (or entirely) implemented in hardware and/or on the processor unit  502 . For example, the functionality may be implemented with an application specific integrated circuit, in logic implemented in the processor unit  502 , in a co-processor on a peripheral device or card, etc. Further, realizations may include fewer or additional components not illustrated in  FIG. 5  (e.g., video cards, audio cards, additional network interfaces, peripheral devices, etc.). The processor unit  502 , the memory unit  506 , and the network interfaces  504  are coupled to the bus  510 . Although illustrated as being coupled to the bus  510 , the memory unit  506  may be coupled to the processor unit  502 . 
     While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, a mechanism for determining a network topology in a hybrid communications network as described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible. 
     Plural instances may be provided for components, operations, or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter. 
     Although the embodiments above have been described in considerable detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.