CROSS-REFERENCE TO RELATED APPLICATIONSThis application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/467,736, filed on Mar. 25, 2011, which is hereby incorporated herein by reference.
This application is related to the following:
U.S. Provisional Patent Application Ser. No. 61/467,715, filed on Mar. 25, 2011, titled “DOUBLE-BUFFER INSERTION COUNT STORED IN A DEVICE ATTACHED TO A PHYSICAL LAYER MEDIUM”, which is hereby incorporated herein by reference;
U.S. patent application Ser. No. ______, Attorney Docket No. 100.1176US01, filed on even date herewith, titled “DOUBLE-BUFFER INSERTION COUNT STORED IN A DEVICE ATTACHED TO A PHYSICAL LAYER MEDIUM”, which is hereby incorporated herein by reference;
U.S. Provisional Patent Application Ser. No. 61/467,725, filed on Mar. 25, 2011, titled “DYNAMICALLY DETECTING A DEFECTIVE CONNECTOR AT A PORT”, which is hereby incorporated herein by reference;
U.S. patent application Ser. No. ______, Attorney Docket No. 100.1177US01, filed on even date herewith, titled “DYNAMICALLY DETECTING A DEFECTIVE CONNECTOR AT A PORT”, which is hereby incorporated herein by reference;
U.S. Provisional Patent Application Ser. No. 61/467,729, filed on Mar. 25, 2011, titled “IDENTIFIER ENCODING SCHEME FOR USE WITH MULTI-PATH CONNECTORS”, which is hereby incorporated herein by reference;
U.S. patent application Ser. No. ______, Attorney Docket No. 100.1178US01, filed on even date herewith, titled “IDENTIFIER ENCODING SCHEME FOR USE WITH MULTI-PATH CONNECTORS”, which is hereby incorporated herein by reference;
U.S. Provisional Patent Application Ser. No. 61/467,743, filed on Mar. 25, 2011, titled “EVENT-MONITORING IN A SYSTEM FOR AUTOMATICALLY OBTAINING AND MANAGING PHYSICAL LAYER INFORMATION USING A RELIABLE PACKET-BASED COMMUNICATION”, which is hereby incorporated herein by reference; and
U.S. patent application Ser. No. ______, Attorney Docket No. 100.1181US01, filed on even date herewith, titled “EVENT-MONITORING IN A SYSTEM FOR AUTOMATICALLY OBTAINING AND MANAGING PHYSICAL LAYER INFORMATION USING A RELIABLE PACKET-BASED COMMUNICATION”, which is hereby incorporated herein by reference.
BACKGROUNDCommunication networks typically include numerous logical communication links between various items of equipment. Often a single logical communication link is implemented using several pieces of physical communication media. For example, a logical communication link between a computer and an inter-networking device such as a hub or router can be implemented as follows. A first cable connects the computer to a jack mounted in a wall. A second cable connects the wall-mounted jack to a port of a patch panel, and a third cable connects the inter-networking device to another port of a patch panel. A “patch cord” cross connects the two together. In other words, a single logical communication link is often implemented using several segments of physical communication media.
A network or enterprise management system (generally referred to here as a “network management system” or “NMS”) is typically aware of the logical communication links that exist in a network but typically does not have information about the specific physical layer media that are used to implement the logical communication links. Indeed, NMS systems typically do not have the ability to display or otherwise provide information about how logical communication links are implemented at the physical layer level.
Physical layer management (PLM) systems do exist. However, existing PLM systems are typically designed to facilitate the adding, changing, and removing of cross connections at a particular patch panel or a set of patch panels at a given location. Generally, such PLM systems include functionality to track what is connected to each port of a patch panel, trace connections that are made using a patch panel, and provide visual indications to a user at a patch panel. However, such PLM systems are typically “patch-panel” centric in that they are focused on helping a technician correctly add, change, or remove cross connections at a patch panel. Any “intelligence” included in or coupled to the patch panel is typically only designed to facilitate making accurate cross connections at the patch panel and troubleshooting related problems (for example, by detecting whether a patch cord is inserted into a given port and/or by determining which ports are coupled to one another using a patch cord).
Moreover, any information that such PLM systems collect is typically only used within the PLM systems. In other words, the collections of information that such PLM systems maintain are logical “islands” that are not used at the application-layer level by other systems. Though such PLM systems are sometimes connected to other networks (for example, connected to local area networks or the Internet), such network connections are typically only used to enable a user to remotely access the PLM systems. That is, a user remotely accesses the PLM-related application-layer functionality that resides in the PLM system itself using the external network connection but external systems or networks typically do not themselves include any application-layer functionality that makes use of any of the physical-layer-related information that resides in the PLM system.
SUMMARYOne exemplary embodiment is directed to a segment of physical communication media. The segment comprises a physical communication medium, a connector attached to the physical communication medium, and a storage device configured to store information therein using a self-defining variable length data field scheme (such as a key-length-value triplet).
DRAWINGSFIG. 1 is a block diagram of one exemplary embodiment of a system that includes physical layer information (PLI) functionality as well as physical layer management (PLM) functionality.
FIG. 2 is a block diagram of one high-level embodiment of a port and media interface that are suitable for use in the system ofFIG. 1.
FIGS. 3A-3B are diagrams illustrating exemplary embodiments of patch cords.
FIG. 4 is a flow chart illustrating an exemplary embodiment of a method of reading information stored on or in a segment of physical communication media.
FIGS. 5A-5C illustrate one example implementation of a key-length-value scheme suitable for use in the system ofFIG. 2.
FIG. 6 illustrates one example of how data is stored on a storage device using the key-length-value scheme described above in connection withFIGS. 5A-5C.
DETAILED DESCRIPTIONFIG. 1 is a block diagram of one embodiment of asystem100 that includes physical layer information (PLI) functionality as well as physical layer management (PLM) functionality. Thesystem100 comprises a plurality ofconnector assemblies102, where eachconnector assembly102 comprises one ormore ports104. In general, theconnector assemblies102 are used to attach segments of physical communication media to one another.
Each segment of physical communication media is attached to arespective port104. Eachport104 is used to connect two or more segments of physical communication media to one another (for example, to implement a portion of a logical communication link). Examples ofconnector assemblies102 include, for example, rack-mounted connector assemblies (such as patch panels, distribution units, and media converters for fiber and copper physical communication media), wall-mounted connector assemblies (such as boxes, jacks, outlets, and media converters for fiber and copper physical communication media), and inter-networking devices (such as switches, routers, hubs, repeaters, gateways, and access points).
At least some of theconnector assemblies102 are designed for use with segments of physical communication media that have identifier and attribute information stored in or on them. The identifier and attribute information is stored in or on the segment of physical communication media in a manner that enables the stored information, when the segment is attached to aport104, to be read by aprogrammable processor106 associated with theconnector assembly102. Examples of information that can be stored in or on a segment of physical communication media include, without limitation, an identifier that uniquely identifies that particular segment of physical communication media (similar to an ETHERNET Media Access Control (MAC) address but associated with the physical communication media and/or connector attached to the physical communication media), a part number, a plug or other connector type, a cable or fiber type and length, a serial number, a cable polarity, a date of manufacture, a manufacturing lot number, information about one or more visual attributes of physical communication media or a connector attached to the physical communication media (such as information about the color or shape of the physical communication media or connector or an image of the physical communication media or connector), and other information used by an Enterprise Resource Planning (ERP) system or inventory control system. In other embodiments, alternate or additional data is stored in or on the media segments. For example, testing, media quality, or performance information can be stored in or on the segment of physical communication media. The testing, media quality, or performance information, for example, can be the results of testing that is performed when a particular segment of media is manufactured.
Also, as noted below, in some embodiments, the information stored in or on the segment of physical communication media can be updated. For example, the information stored in or on the segment of physical communication media can be updated to include the results of testing that is performed when a segment of physical media is installed or otherwise checked. In another example, such testing information is supplied to anaggregation point120 and stored in a data store maintained by the aggregation point120 (both of which are described below). In another example, the information stored in or on the segment of physical communication media includes a count of the number of times that a connector (not shown) attached to a segment of physical communication media has been inserted intoport104. In such an example, the count stored in or on the segment of physical communication media is updated each time the connector is inserted intoport104. This insertion count value can be used, for example, for warranty purposes (for example, to determine if the connector has been inserted more than the number of times specified in the warranty) or for security purposes (for example, to detect unauthorized insertions of the physical communication media).
In the particular embodiment shown inFIG. 1, each of theports104 of theconnector assemblies102 comprises arespective media interface108 via which the respectiveprogrammable processor106 is able to determine if a physical communication media segment is attached to thatport104 and, if one is, to read the identifier and attribute information stored in or on the attached segment (if such information is stored therein or thereon). Theprogrammable processor106 associated with eachconnector assembly102 is communicatively coupled to each of themedia interfaces108 using a suitable bus or other interconnect (not shown).
In the particular embodiment shown inFIG. 1, four exemplary types of connector assembly configurations are shown. In the first connector assembly configuration110 shown inFIG. 1, eachconnector assembly102 includes its own respectiveprogrammable processor106 and its ownrespective network interface116 that is used to communicatively couple thatconnector assembly102 to an Internet Protocol (IP)network118.
In the second type of connector assembly configuration112, a group ofconnector assemblies102 are physically located near each other (for example, in a bay or equipment closet). Each of theconnector assemblies102 in the group includes its own respectiveprogrammable processor106. However, in the second connector assembly configuration112, some of the connector assemblies102 (referred to here as “interfaced connector assemblies”) include their ownrespective network interfaces116 while some of the connector assemblies102 (referred to here as “non-interfaced connector assemblies”) do not. Thenon-interfaced connector assemblies102 are communicatively coupled to one or more of the interfacedconnector assemblies102 in the group via local connections. In this way, thenon-interfaced connector assemblies102 are communicatively coupled to theIP network118 via thenetwork interface116 included in one or more of the interfacedconnector assemblies102 in the group. In the second type of connector assembly configuration112, the total number ofnetwork interfaces116 used to couple theconnector assemblies102 to theIP network118 can be reduced. Moreover, in the particular embodiment shown inFIG. 1, thenon-interfaced connector assemblies102 are connected to the interfacedconnector assembly102 using a daisy chain topology (though other topologies can be used in other implementations and embodiments).
In the third type of connector assembly configuration114, a group ofconnector assemblies102 are physically located near each other (for example, within a bay or equipment closet). Some of theconnector assemblies102 in the group (also referred to here as “master” connector assemblies102) include both their ownprogrammable processors106 andnetwork interfaces116, while some of the connector assemblies102 (also referred to here as “slave” connector assemblies102) do not include their ownprogrammable processors106 or network interfaces116. Each of theslave connector assemblies102 is communicatively coupled to one or more of themaster connector assemblies102 in the group via one or more local connections. Theprogrammable processor106 in each of themaster connector assemblies102 is able to carry out the processing described below for both themaster connector assembly102 of which it is a part and anyslave connector assemblies102 to which themaster connector assembly102 is connected via the local connections. As a result, the cost associated with theslave connector assemblies102 can be reduced. In the particular embodiment shown inFIG. 1, theslave connector assemblies102 are connected to amaster connector assembly102 in a star topology (though other topologies can be used in other implementations and embodiments).
Eachprogrammable processor106 is configured to execute software or firmware190 (shown inFIG. 2) that causes theprogrammable processor106 to carry out various functions described below. Thesoftware190 comprises program instructions that are stored (or otherwise embodied) on an appropriate non-transitory storage medium or media192 (such as flash or other non-volatile memory, magnetic disc drives, and/or optical disc drives). At least a portion of the program instructions are read from thestorage medium192 by theprogrammable processor106 for execution thereby. Thestorage medium192 on or in which the program instructions are embodied is also referred to here as a “program product”. Although thestorage medium192 is shown inFIG. 2 as being included in, and local to, theconnector assembly102, it is to be understood that remote storage media (for example, storage media that is accessible over a network or communication link) and/or removable media can also be used. Eachconnector assembly102 also includes suitable memory (not shown) that is coupled to theprogrammable processor106 for storing program instructions and data. In general, the programmable processor106 (and thesoftware190 executing thereon) determines if a physical communication media segment is attached to aport104 with which thatprocessor106 is associated and, if one is, to read the identifier and attribute information stored in or on the attached physical communication media segment (if the segment includes such information stored therein or thereon) using the associatedmedia interface108.
As shown inFIG. 1, in the first, second, and third configurations110,112, and114, eachprogrammable processor106 is also configured to communicate physical layer information to devices that are coupled to theIP network118. The physical layer information (PLI) includes information about theconnector assemblies102 associated with that programmable processor106 (also referred to here as “device information”) as well as information about any segments of physical media attached to theports104 of those connector assemblies102 (also referred to here as “media information”) The device information includes, for example, an identifier for each connector assembly, a type identifier that identifies the connector assembly's type, and port priority information that associates a priority level with each port. The media information includes identity and attribute information that theprogrammable processor106 has read from attached physical media segments that have identifier and attribute information stored in or on it. The media information may also include information about physical communication media that does not have identifier or attribute information stored in or on it. This latter type of media information can be manually input at the time the associated physical media segments are attached to the connector assembly102 (for example, using a management application executing on theprogrammable processor106 that enables a user to configure and monitor the connector assembly102).
In the fourth type of connector assembly configuration115, a group ofconnector assemblies102 are housed within a common chassis or other enclosure. Each of theconnector assemblies102 in the configuration115 includes their ownprogrammable processors106. In the context of this configuration115, theprogrammable processors106 in each of the connector assemblies are “slave”processors106. Each of the slaveprogrammable processor106 is also communicatively coupled to a common “master” programmable processor117 (for example, over a backplane included in the chassis or enclosure). The masterprogrammable processor117 is coupled to anetwork interface116 that is used to communicatively couple the masterprogrammable processor117 to theIP network118. In this configuration115, each slaveprogrammable processor106 is configured to determine if physical communication media segments are attached to itsport104 and to read the identifier and attribute information stored in or on the attached physical communication media segments (if the attached segments have such information stored therein or thereon) using the associated media interfaces108. This information is communicated from the slaveprogrammable processor106 in each of theconnector assemblies102 in the chassis to themaster processor117. Themaster processor117 is configured to handle the processing associated with communicating the physical layer information read from by theslave processors106 to devices that are coupled to theIP network118.
Thesystem100 includes functionality that enables the physical layer information that theconnector assemblies102 capture to be used by application-layer functionality outside of the traditional physical-layer management application domain. That is, the physical layer information is not retained in a PLM “island” used only for PLM purposes but is instead made available to other applications. In the particular embodiment shown inFIG. 1, thesystem100 includes anaggregation point120 that is communicatively coupled to theconnector assemblies102 via theIP network118.
Theaggregation point120 includes functionality that obtains physical layer information from the connector assemblies102 (and other devices) and stores the physical layer information in a data store.
Theaggregation point120 can be used to receive physical layer information from various types ofconnector assemblies106 that have functionality for automatically reading information stored in or on the segment of physical communication media. Examples ofsuch connector assemblies106 are noted above. Also, theaggregation point120 and aggregation functionality124 can also be used to receive physical layer information from other types of devices that have functionality for automatically reading information stored in or on the segment of physical communication media. Examples of such devices include end-user devices—such as computers, peripherals (such as printers, copiers, storage devices, and scanners), and IP telephones—that include functionality for automatically reading information stored in or on the segment of physical communication media.
Theaggregation point120 can also be used to obtain other types of physical layer information. For example, in this embodiment, theaggregation point120 also obtains information about physical communication media segments that is not otherwise automatically communicated to anaggregation point120. One example of such information is information about non-connectorized physical communication media segments that do not otherwise have information stored in or on them that are attached to a connector assembly (including, for example, information indicating which ports of the devices are connected to which ports of other devices in the network as well as media information about the segment). Another example of such information is information about physical communication media segments that are connected to devices that are not able to read media information that is stored in or on the media segments that are attached to their ports and/or that are not able to communicate such information to the aggregation point120 (for example, because such devices do not include such functionality, because such devices are used with media segments that do not have media information stored in or on them, and/or because bandwidth is not available for communicating such information to the aggregation point120). In this example, the information can include, for example, information about the devices themselves (such as the devices' MAC addresses and IP addresses if assigned to such devices), information indicating which ports of the devices are connected to which ports of other devices in the network (for example, other connector assemblies), and information about the physical media attached to the ports of the devices. This information can be provided to theaggregation point120, for example, by manually entering such information into a file (such as a spreadsheet) and then uploading the file to the aggregation point120 (for example, using a web browser) in connection with the initial installation of each of the various items. Such information can also, for example, be directly entered using a user interface provided by the aggregation point120 (for example, using a web browser).
Theaggregation point120 can also obtain information about the layout of the building or buildings in which the network is deployed, as well as information indicating where eachconnector assembly102, physical media segment, and inter-networking device is located within the building. This information can be, for example, manually entered and verified (for example, using a web browser) in connection with the initial installation of each of the various items. In one implementation, such location information includes an X, Y, and Z location for each port or other termination point for each physical communication media segment (for example, X, Y, and Z location information of the type specified in the ANSI/TIA/EIA 606-A Standard (Administration Standard For The Commercial Telecommunications Infrastructure)).
Theaggregation point120 can obtain and maintain testing, media quality, or performance information relating to the various segments of physical communication media that exist in the network. The testing, media quality, or performance information, for example, can be results of testing that is performed when a particular segment of media is manufactured and/or when testing is performed when a particular segment of media is installed or otherwise checked.
Theaggregation point120 also includes functionality that provides an interface for external devices or entities to access the physical layer information maintained by theaggregation point120. This access can include retrieving information from theaggregation point120 as well as supplying information to theaggregation point120. In this embodiment, theaggregation point120 is implemented as “middleware” that is able to provide such external devices and entities with transparent and convenient access to the PLI maintained by theaccess point120. Because theaggregation point120 aggregates PLI from the relevant devices on theIP network118 and provides external devices and entities with access to such PLI, the external devices and entities do not need to individually interact with all of the devices in theIP network118 that provide PLI, nor do such devices need to have the capacity to respond to requests from such external devices and entities.
Theaggregation point120, in the embodiment shown inFIG. 1, implements an application programming interface (API) by which application-layer functionality can gain access to the physical layer information maintained by theaggregation point120 using a software development kit (SDK) that describes and documents the API. Also, in those embodiments where theconnector assemblies102 include one or more light emitting diodes (LEDs) (for example, where eachport104 has an associated LED), the API andaggregation point120 can include functionality that enables application-layer functionality to change the state of such LEDs using the API.
For example, as shown inFIG. 1, a network management system (NMS)130 includes physical layer information (PLI)functionality132 that is configured to retrieve physical layer information from theaggregation point120 and provide it to the other parts of theNMS130 for use thereby. TheNMS130 uses the retrieved physical layer information to perform one or more network management functions (for example, as described below). In one implementation of the embodiment shown inFIG. 1, thePLI functionality132 of theNMS130 retrieves physical layer information from theaggregation point120 using the API implemented by theaggregation point120. TheNMS130 communicates with theaggregation point120 over theIP network118.
As shown inFIG. 1, anapplication134 executing on acomputer136 can also use the API implemented by theaggregation point120 to access the PLI information maintained by the aggregation point120 (for example, to retrieve such information from theaggregation point120 and/or to supply such information to the aggregation point120). Thecomputer136 is coupled to theIP network118 and accesses theaggregation point120 over theIP network118.
In the embodiment shown inFIG. 1, one or moreinter-networking devices138 used to implement theIP network118 include physical layer information (PLI)functionality140. ThePLI functionality140 of theinter-networking device138 is configured to retrieve physical layer information from theaggregation point120 and use the retrieved physical layer information to perform one or more inter-networking functions. Examples of inter-networking functions includeLayer 1,Layer 2, and Layer 3 (of the OSI model) inter-networking functions such as the routing, switching, repeating, bridging, and grooming of communication traffic that is received at the inter-networking device. In one implementation of such an embodiment, thePLI functionality140 uses the API implemented by theaggregation point120 to communicate with theaggregation point120.
ThePLI functionality140 included in theinter-networking device138 can also be used to capture physical layer information associated with theinter-network device138 and the physical communication media attached to it and communicate the captured physical layer information to theaggregation point120. Such information can be provided to theaggregation point120 using the API or by using the protocols that are used to communicate with theconnector assemblies102.
Theaggregation point120 can be implemented on a standalone network node (for example, a standalone computer running appropriate software) or can be integrated along with other network functionality (for example, integrated with an element management system or network management system or other network server or network element). Moreover, the functionality of theaggregation point120 can be distributed across many nodes and devices in the network and/or implemented, for example, in a hierarchical manner (for example, with many levels of aggregation points).
Moreover, theaggregation point120 and theconnector assemblies102 are configured so that theaggregation point120 can automatically discover and connect with devices that provide PLI to an aggregation point120 (such as theconnector assemblies102 and inter-network device138) that are on thenetwork118. In this way, when devices that are able to provide PLI to an aggregation point120 (such as aconnector assembly102 or an inter-networking device138) are coupled to theIP network118, anaggregation point120 is able to automatically discover theconnector assembly102 and start aggregating physical layer information for thatconnector assembly102 without requiring the person installing theconnector assembly102 to have knowledge of the aggregation points120 that are on theIP network118. Similarly, when anaggregation point120 is coupled to theIP network118, theaggregation point120 is able to automatically discover and interact with devices that are capable of providing PLI to an aggregation point without requiring the person installing theaggregation point120 to have knowledge of the devices that are on theIP network118. Thus, the physical-layer information resources described here can be easily integrated into theIP network118.
TheIP network118 can include one or more local area networks and/or wide area networks (including for example the Internet). As a result, theaggregation point120,NMS130, andcomputer136 need not be located at the same site as each other or at the same site as theconnector assemblies102 or theinter-networking devices138.
Various conventional IP networking techniques can be used in deploying thesystem100 ofFIG. 1. For example, conventional security protocols can be used to secure communications if they are communicated over a public or otherwise unsecure communication channel (such as the Internet or over a wireless communication link).
In one implementation of the embodiment shown inFIG. 1, eachconnector assembly102, eachport104 of eachconnector assembly102, and each media segment is individually addressable. Where IP addresses are used to individually address eachconnector assembly102, a virtual private network (VPN) dedicated for use with thevarious connector assemblies102 can be used to segregate the IP addresses used for theconnector assemblies102 from the main IP address space that is used in theIP network118.
Also, power can be supplied to theconnector assemblies102 using conventional “Power over Ethernet” techniques specified in the IEEE 802.3af standard, which is hereby incorporated herein by reference. In such an implementation, apower hub142 or other power supplying device (located near or incorporated into an inter-networking device that is coupled to each connector assembly102) injects DC power onto one or more of the wires (also referred to here as the “power wires”) included in the copper twisted-pair cable used to connect eachconnector assembly102 to the associated inter-networking device. Theinterface116 in theconnector assembly102 picks the injected DC power off of the power wires and uses the picked-off power to power the active components of thatconnector assembly102. In the second and third connector assembly configurations112 and114, some of theconnector assemblies102 are not directly connected to theIP network118 and, therefore, are unable to receive power directly from the power wires. Theseconnector assemblies102 receive power from theconnector assemblies102 that are directly connected to theIP network118 via the local connections that communicatively couplesuch connector assemblies102 to one another. In the fourth configuration115, theinterface116 picks the injected DC power off of the power wires and supplies power to themaster processor117 and each of theslave processors106 over the backplane.
In the particular embodiment shown inFIG. 1, thesystem100 also supports conventional physical layer management (PLM) operations such as the tracking of moves, adds, and changes of the segments of physical media that are attached to theports104 of theconnector assemblies102 and providing assistance with carrying out moves, adds, and changes. PLI provided by theaggregation point120 can be used to improve upon conventional “guided MAC” processes. For example, information about the location of theport104 and the visual appearance (for example, the color or shape) of the relevant physical media segment (or connector attached thereto) can be communicated to a technician to assist the technician in carrying out a move, add, or change. This information can be communicated to a computer or smartphone used by the technician. Moreover, the PLI functionality that resides in thesystem100 can also be used to verify that a particular MAC was properly carried out by checking that the expected physical media segment is located in the expectedport104. If that is not the case, an alert can be sent to the technician so that the technician can correct the issue.
The PLM functionality included in thesystem100 can also support conventional techniques for guiding the technician in carrying out a MAC (for example, by illuminating one or more light emitting diodes (LEDs) to direct a technician to aparticular connector assembly102 and/or to aparticular port104 or by displaying messages on a liquid crystal display (LCD) included on or near theconnector assemblies102.
Other PLM functions include keeping historical logs about the media connected to the connector assembly. In the embodiment shown inFIG. 1, theaggregation point120 includes PLM functionality144 that implements such PLM functions. The PLM functionality144 does this using the physical layer information that is maintained at theaggregation point120.
TheIP network118 is typically implemented using one or more inter-networking devices. As noted above, an inter-networking device is a type of connector assembly (and a particular implementation of aninter-networking device138 is referenced separately inFIG. 1 for ease of explanation only). Generally, an inter-networking device can be configured to read media information that is stored in or on the segments of physical media that are attached to its ports and to communicate the media information it reads from the attached segments of media (as well as information about the inter-networking device itself) to anaggregation point120 like any other connector assembly described here.
In addition toconnector assemblies102, the techniques described here for reading media information stored in or on a segment of physical communication media can be used in one or more end nodes of theIP network118. For example, computers (such as, laptops, servers, desktop computers, or special-purpose computing devices such as IP telephones, IP multi-media appliances, and storage devices) can be configured to read media information that is stored in or on the segments of physical communication media that are attached to their ports and to communicate the media information they read from the attached segments of media (as well as information about the devices themselves) to anaggregation point120 as described here.
In one implementation of thesystem100 shown inFIG. 1, theports104 of eachconnector assembly102 are used to implement theIP network118 over which eachconnector assembly102 communicates physical layer information associated with thatconnector assembly102. In such an implementation, such physical layer information is communicated over theIP network118 just like any other data that is communicated over theIP network118. As noted below, themedia interface108 determines if a physical communication media segment is attached to thecorresponding port104 and, if one is, reads the identifier and attribute information stored in or on the attached segment (if such information is stored therein or thereon) without affecting the normal data signals that pass through thatport104. Indeed, such physical layer information may actually pass through one or more of theports104 ofconnector assemblies102 in the course of being communicated to and/or from aconnector assembly102, aggregation point150,network management system130, and/orcomputer136. By using theIP network118 to communicate physical layer information pertaining to it, a separate network need not be provided and maintained in order to communicate such physical-layer information. However, in other implementations and embodiments, the physical layer information described above is communicated using a network that is separate from the network to which such physical layer information pertains.
FIG. 2 is a block diagram of one high-level embodiment of aport104 andmedia interface108 that are suitable for use in thesystem100 ofFIG. 1.
Eachport104 comprises afirst attachment point206 and asecond attachment point208. Thefirst attachment point206 is used to attach a first segment ofphysical communication media210 to theport104, and thesecond attachment point208 is used to attach a second segment ofphysical communication media212 to theport104.
In the particular embodiment shown inFIG. 2, thefirst attachment point206 is located near the rear of the connector assembly. As a consequence, thefirst attachment point206 and the first segment ofphysical media210 attached thereto are also referred to here as the “rear attachment point”206 and the “rear media segment”210, respectively. Also, in this embodiment, therear attachment point206 is configured to attach therear media segment210 to theport104 in a semi-permanent manner. As used herein, a semi-permanent attachment is one that is designed to be changed relatively infrequently, if ever. This is also referred to sometimes as a “one-time” connection. Examples of suitablerear connectors206 include punch-down blocks (in the case of copper physical media) and fiber adapters, fiber splice points, and fiber termination points (in the case of optical physical media).
In the embodiment shown inFIG. 2, thesecond attachment point208 is located near the front of theconnector assembly102. As a consequence, thesecond attachment point208 and the second segment ofphysical media212 are also referred to here as the “front attachment point”208 and the “front media segment”212, respectively. In the embodiment shown inFIG. 2, thefront attachment point208 for eachport104 is designed for use with “connectorized”front media segments212 that have identifier and attribute information stored in or on them. As used herein, a “connectorized” media segment is a segment of physical communication media that includes aconnector214 at at least one end of the segment. Thefront attachment point208 is implemented using a suitable connector or adapter that mates with the correspondingconnector214 on the end of thefront media segment212. Theconnector214 is used to facilitate the easy and repeated attachment and unattachment of thefront media segment212 to theport104. Examples of connectorized media segments include CAT-5, 6, and 7 twisted-pair cables having modular connectors or plugs attached to both ends (in which case, the front connectors are implemented using compatible modular jacks) or optical cables having SC, LC, FC, LX.5, MTP, or MPO connectors (in which case, the front connectors are implemented using compatible SC, LC, FC, LX.5, MTP, or MPO connectors or adapters). The techniques described here can be used with other types of connectors including, for example, BNC connectors, F connectors, DSX jacks and plugs, bantam jacks and plugs, and MPO and MTP multi-fiber connectors and adapters.
Eachport104 communicatively couples the respectiverear attachment point206 to the respectivefront attachment point208. As a result, arear media segment210 attached to the respectiverear attachment point206 is communicatively coupled to anyfront media segment212 attached to the respectivefront attachment point208. In one implementation, eachport104 is designed for use with arear media segment210 and afront media segment212 that comprise the same type of physical communication media, in which case eachport104 communicatively couples anyrear media segment210 attached to the respectiverear attachment point206 to anyfront media segment212 attached to the respectivefront attachment point208 at the physical layer level without any media conversion. In other implementations, eachport104 communicatively couples anyrear media segment210 attached to the respectiverear attachment point206 to anyfront media segment212 attached to the respectivefront attachment point208 in other ways (for example, using a media converter if therear media segment210 and thefront media segment212 comprise different types of physical communication media).
In the exemplary embodiment shown inFIG. 2, theport104 is configured for use withfront media segments212 that include astorage device216 in which the media information for thatmedia segment212 is stored. Thestorage device216 includes astorage device interface218 that, when thecorresponding connector214 is inserted into (or otherwise attached to) afront attachment point208 of theport104, communicatively couples thestorage device216 to acorresponding media interface108 so that the associatedprogrammable processor106 can read the information stored in thestorage device216. In one implementation of the embodiment shown inFIG. 2, eachconnector214 itself houses thestorage device216. In another implementation of such an embodiment, thestorage device216 is housed within a housing that is separate from theconnector214. In such an implementation, the housing is configured so that it can be snapped onto themedia segment212 or theconnector214, with thestorage device interface218 positioned relative to theconnector214 so that thestorage device interface218 will properly mate with themedia interface108 when theconnector214 is inserted into (or otherwise attached to) thefront attachment point208. Although in the exemplary embodiment shown inFIG. 2 only thefront media segments212 includestorage devices216, it is to be understood that in other embodiments connector assemblies and/or other devices are configured to read storage devices that are attached to (or otherwise included with)rear media segments210 and/or any “auxiliary” media segments (for example, media segments coupled to the network interface116).
In some implementations, at least some of the information stored in thestorage device216 can be updated in the field (for example, by having an associatedprogrammable processor106 cause additional information to be written to thestorage device216 or changing or deleting information that was previously stored in the storage device216). For example, in some implementations, some of the information stored in thestorage device216 cannot be changed in the field (for example, identifier information or manufacturing information) while some of the other information stored in thestorage device216 can be changed in the field (for example, testing, media quality, or performance information). In other implementations, none of the information stored in thestorage device216 can be updated in the field.
Also, thestorage device216 may also include a processor or micro-controller, in addition to storage for the media information. In which case, the micro-controller included in thestorage device216 can be used to execute software or firmware that, for example, controls one or more LEDs attached to thestorage device216. In another example, the micro-controller executes software or firmware that performs an integrity test on the front media segment212 (for example, by performing a capacitance or impedance test on the sheathing or insulator that surrounds the front physical communication media segment212 (which may include a metallic foil or metallic filler for such purposes)). In the event that a problem with the integrity of thefront media segment212 is detected, the micro-controller can communicate that fact to theprogrammable processor106 associated with theport104 using thestorage device interface218. The micro-controller can also be used for other functions.
Theport104,connector214,storage device216, andmedia interface108 are configured so that the information stored in thestorage device216 can be read without affecting the communication signals that pass through themedia segments210 and212.
Furtherdetails regarding system100 and theport104 can be found in the following United States patent applications, all of which are hereby incorporated herein by reference: U.S. Provisional Patent Application Ser. No. 61/152,624, filed on Feb. 13, 2009, titled “MANAGED CONNECTIVITY SYSTEMS AND METHODS” (also referred to here as the “'624 Application”); U.S. patent application Ser. No. 12/705,497, filed on Feb. 12, 2010, titled “AGGREGATION OF PHYSICAL LAYER INFORMATION RELATED TO A NETWORK” (is also referred to here as the '497 Application); U.S. patent application Ser. No. 12/705,501, filed on Feb. 12, 2010, titled “INTER-NETWORKING DEVICES FOR USE WITH PHYSICAL LAYER INFORMATION” (also referred to here as the '501 Application); U.S. patent application Ser. No. 12/705,506, filed on Feb. 12, 2010, titled “NETWORK MANAGEMENT SYSTEMS FOR USE WITH PHYSICAL LAYER INFORMATION” (also referred to here as the '506 Application); U.S. patent application Ser. No. 12/705,514, filed on Feb. 12, 2010, titled “MANAGED CONNECTIVITY DEVICES, SYSTEMS, AND METHODS” (also referred to here as the '514 Application); U.S. Provisional Patent Application Ser. No. 61/252,395, filed on Oct. 16, 2009, titled “MANAGED CONNECTIVITY IN ELECTRICAL SYSTEMS AND METHODS THEREOF” (also referred to here as the “'395 Application”); U.S. Provisional Patent Application Ser. No. 61/253,208, filed on Oct. 20, 2009, titled “ELECTRICAL PLUG FOR MANAGED CONNECTIVITY SYSTEMS” (also referred to here as the “'208 Application”); U.S. Provisional Patent Application Ser. No. 61/252,964, filed on Oct. 19, 2009, titled “ELECTRICAL PLUG FOR MANAGED CONNECTIVITY SYSTEMS” (also referred to here as the “'964 Application”); U.S. Provisional Patent Application Ser. No. 61/252,386, filed on Oct. 16, 2009, titled “MANAGED CONNECTIVITY IN FIBER OPTIC SYSTEMS AND METHODS THEREOF” (also referred to here as the “'386 Application”); U.S. Provisional Patent Application Ser. No. 61/303,961, filed on Feb. 12, 2010, titled “FIBER PLUGS AND ADAPTERS FOR MANAGED CONNECTIVITY” (the “'961 Application”); and U.S. Provisional Patent Application Ser. No. 61/303,948, filed on Feb. 12, 2010, titled “BLADED COMMUNICATIONS SYSTEM” (the “'948 Application”).
FIG. 3A is a diagram illustrating one exemplary embodiment of a front media segment. In the embodiment shown inFIG. 3A, the front media segment comprises a “patch cord”312 that is used to selectively cross-connect two ports of the same or different patch panels. Thepatch cord312 shown inFIG. 3A is suitable for use with an implementation of a patch panel where the front connectors of the ports are implemented using modular RJ-45 jacks. Thepatch cord312 shown inFIG. 3A comprises a copper unshielded twisted-pair (UTP)cable386. TheUTP cable386 includes eight conductors arranged in four conductor pairs. Thepatch cord312 also comprises two RJ-45plugs314, one at each end of the cable386 (only one of which is shown inFIG. 3A). The RJ-45plugs314 are designed to be inserted into the RJ-45 modular jacks used as the front connectors. Each RJ-45plug314 comprises acontact portion388 in which eight, generally parallelelectrical contacts390 are positioned. Each of the eightelectrical contacts390 are electrically connected to one of the eight conductors in theUTP cable386.
Eachplug314 also comprises (or is attached to) a storage device392 (for example, an Electrically Erasable Programmable Read-Only Memory (EEPROM) or other non-volatile memory device). The media information described above for thepatch cord312 is stored in thestorage device392. Thestorage device392 includes sufficient storage capacity to store such information. Eachstorage device392 also includes astorage device interface394 that, when thecorresponding plug314 is inserted into a front connector of a port304, communicatively couples thestorage device392 to the corresponding media interface so that the programmable processor320 in the corresponding patch panel302 can read the information stored in thestorage device392.
Examples of such apatch cord312 and plug314 are described in the '395 Application, the '208 Application, and the '964 Application.
FIG. 3B is a diagram illustrating another exemplary embodiment of apatch cord312′. Thepatch cord312′ shown inFIG. 3B is suitable for use with a fiber patch panel where the front connectors of the ports are implemented using fiber LC adapters or connectors. Thepatch cord312′ shown inFIG. 3B comprises anoptical cable386′. Theoptical cable386′ includes an optical fiber enclosed within a suitable sheathing. Thepatch cord312′ also comprises twoLC connectors314′, one at each of thecable386′. EachLC connector314′ is designed to be inserted into an LC adapter used as the front connector of a port of a fiber patch panel. EachLC connector314′ comprises anend portion388′ at which an optical connection with the optical fiber in thecable386′ can be established when theLC connector314′ is inserted in an LC adapter of a port.
EachLC connector314′ also comprises (or is attached to) astorage device392′ (for example, an Electrically Erasable Programmable Read-Only Memory (EEPROM) or other non-volatile memory device). The media information described above for thepatch cord312 is stored in thestorage device392′. Thestorage device392′ includes sufficient storage capacity to store such information. Eachstorage device392′ also includes astorage device interface394′ that, when thecorresponding LC connector314′ is inserted into a front connector of a port, communicatively couples thestorage device392′ to the corresponding media interface so that the programmable processor in the corresponding fiber patch panel can read the information stored in thestorage device392′.
In some implementations of thepatch cords312 and312′, thestorage devices392 and392′ are implemented using a surface-mount EEPROM or other non-volatile memory device. In such implementations, the storage device interfaces and media interfaces each comprise four leads—a power lead, a ground lead, a data lead, and an extra lead that is reserved for future use. In one such implementation, an EEPROM that supports a serial protocol is used, where the serial protocol is used for communicating over the signal data lead. The four leads of the storage device interfaces come into electrical contact with four corresponding leads of the media interface when the corresponding plug or connector is inserted in the corresponding front connector of a port304. Each storage device interface and media interface are arranged and configured so that they do not interfere with data communicated over the patch cord. In other embodiments, other types of interfaces are used. For example, in one such alternative embodiment, a two-line interface is used with a simple charge pump. In other embodiments, additional lines are provided (for example, for potential future applications).
Examples of suchfiber patch cords312′ andconnectors314′ are described in U.S. Provisional Patent Application Ser. No. 61/252,386, filed on Oct. 16, 2009, titled “MANAGED CONNECTIVITY IN FIBER OPTIC SYSTEMS AND METHODS THEREOF” (also referred to here as the “'386 Application”), U.S. Provisional Patent Application Ser. No. 61/303,961, filed on Feb. 12, 2010, titled “FIBER PLUGS AND ADAPTERS FOR MANAGED CONNECTIVITY” (the “'961 Application”), and U.S. Provisional Patent Application Ser. No. 61/303,948, filed on Feb. 12, 2010, titled “BLADED COMMUNICATIONS SYSTEM” (the “'948 Application”). The '386 Application, the '961 Application, and the '948 Application are hereby incorporated herein by reference.
In some implementations of thepatch cords312 and312′, eachplug314 orconnector314′ itself houses the respective storage device and storage device interface. In implementations, each storage device and corresponding storage device interface are housed within a housing that is separate from the corresponding plug or connector. In such implementations, the housing is configured so that it can be snapped onto (or otherwise attached to) the cable or the plug or connector, with the storage device interface positioned relative to the plug or connector so that the storage device interface will properly mate with the relevant media interface when the plug or connector is inserted into the front connector of the corresponding port.
For ease of explanation, certain processing relating to one ormore connector assemblies102 is described here as being performed by theprogrammable processor106 and thesoftware190 executing onprogrammable processor106. However, it is to be understood that all or part of the processing described here as being performed byprocessor106 and thesoftware190 could also be performed by other processors and software associated with eachconnector assembly102. For example, all or some of such processing can (but need not) be performed by a “master” processor117 (and the software executing thereon) where a master-slave configuration115 is used. Also, aparticular connector assembly102 can also include more than one processor106 (for example, where required by the port density of the connector assembly102).
Moreover, functionality described here as being implemented in software executing on a programmable processor can be implemented in other ways. For example, such functionality can be implemented in hardware using discrete hardware, application-specific integrated circuits (ASICS)), programmable devices (such as field-programmable gate arrays (FPGAs) or complex programmable logic devices (CPLDs)), and/or combinations of one or more of the foregoing, and/or combinations of one or more of the foregoing along with software executing on one or more programmable processors. For example, the detection of the insertion of aconnector214 into aport104 of aconnector assembly102 and/or the reading of information from anystorage device216 attached to theconnector214 can be implemented in hardware (for example, using one or more programmable devices and/or an ASIC) in addition to or instead of being implemented as software.
Referring back to the embodiment shown inFIG. 2, information stored onstorage device216 is encoded using a self-defining variable length data field scheme. That is, none of themedia interfaces108 nor processor106 (nor thesoftware190 executing thereon), nor any other component ofsystem100 need have a priori knowledge of the content, length, or the format of the data fields (or other units of data) used to store information in or on the segment of communication physical media212 (for example, in the storage device216). Instead, information about the content, length, and/or format of each data field (or other unit of data) is determined from data stored in or on segment ofphysical communication media212 itself.
For example, in one implementation of the embodiment ofFIG. 2, information is stored using key-length-value triplets. In the particular embodiment described herein, the information is stored in astorage device216 that is included or otherwise attached or associated with theconnector214. That is, each item of information stored in or on the segment ofphysical media212 utilizes a key-length-value triplet scheme wherein each key-length-value triplet includes a “key” field that identifies the item of information encoded within the triplet, a “length” field that specifies the length of the item of information, and a “value” field that contains the item of information itself (that is, the payload). Using key-length-value triplets eliminates the need for each item of information stored in thestorage device216 to be the same length, which allows for more efficient use of the capacity available ofstorage device216 and other benefits discussed below.
FIG. 4 is a flow chart illustrating generally at400 one exemplary embodiment of a method of reading data stored in or on a segment of physical communication media. The exemplary embodiment ofmethod400 shown inFIG. 4 can be implemented in thesystem100 described above in connection withFIG. 2. In particular, the processing described here in connection withmethod400 can be implemented by software associated with each connector assembly102 (for example, the software190). The method begins at402 with determining a field length used to store a first item of information in astorage device216 in or on a segment of physical communication media by reading data from thestorage device216. As described below, the field length information can be encoded with the item of information as a key-length value triplet or can be encoded in header information stored on thestorage device216. Properties of a key-length value triplet are discussed below. In one implementation of themethod400, the segment of physical communication media comprises a physical communication medium or media (for example, one or more twisted-pair cables or optical fibers), at least one connector attached to the segment of physical communication media, and at least onestorage device216 attached to the physical communication media or medium and/or the connector, as illustrated inFIGS. 2,3A and3B. The method proceeds to404 parsing data read from thestorage device216 based on the field length to identify a data field that stores the first item of information. In this way, the information stored on thestorage device216 itself can be used to figure out how to parse the information stored on thestorage device216.
FIGS. 5A-5C illustrate one example implementation of a key-length-value scheme suitable for use in thesystem100 described above in connection withFIG. 2. Each key-length-value triplet500 includes a respectivekey field502,length field504, andvalue field506.
Each item of information to be stored onstorage device216 is assigned a key that identifies that item of information. This key is stored in thekey field502 of the key-length-value triplet500 that is used to store that item of information. In one example, for a given segment ofphysical media212, a key-length-value triplet with a key of “001” indicates that the triplet stores a serial number (or other unique identifier), a key of “002” indicates a triplet that stores a date of manufacture, a key of “022” indicates a triplet that stores an insertion count value, and so on for each item of information stored on thestorage device216. The length of thekey field502 itself (for example, 8 or 16 bits) is fixed and would be established a priori and known by the various entities in thesystem100 that make use of the key-length-value triplets.
Following the triplet'skey field502 is thelength field504. Thelength field504 indicates the number of bits, bytes, or other units of data that make up thevalue field506 portion of the key-length-value triplet500. Thevalue field506 follows thelength field504.
In the exemplary embodiment shown inFIGS. 5A-5C, thelength field504 comprises a fixedportion508 having a predetermined length (eight bits in this example) that would be established a priori and would be known by the various entities in thesystem100 that make use of the key-length-value triplets. The most-significant bit510 of the fixedportion508 of thelength field504 is used to determine how the rest of thelength field504 is encoded. In the exemplary embodiment shown inFIGS. 5A-5C, if the most-significant bit510 of the fixedportion508 of thelength field504 is set to a first predetermined value (for example, a logical value of “1”), then thelength field504 comprises only the fixedportion508 and the remainingbits512 of the fixedportion508 of thelength field504 include the length of thevalue field506. In this example where the fixedportion508 of thelength field504 comprises 8 bits, the remainingbits512 of the fixedportion508 of thelength field504 can store values of up to 127, which in this example corresponds to up to 127 bytes.
In the exemplary embodiment shown inFIGS. 5A-5C, if the most-significant bit510 of the fixedportion508 of thelength field504 is set to a second predetermined value (for example, a logical value of “0”), then thelength field504 comprises avariable portion514 that follows the fixedportion508. In this case, the length of thevalue field506 of thecorresponding triplet500 is stored in thevariable portion514 of thelength field504. Also, in this case, the remainingbits512 of the fixedportion508 of thelength field504 are used to store the length of thevariable portion514 of thelength field504. As noted above, in this example where the fixedportion508 of thelength field504 comprises 8 bits, the remainingbits512 of the fixedportion508 of thelength field504 can store values of up to 127, which in this example corresponds to avariable portion514 that is up to 127 bytes long.
FIGS. 5B and 5C illustrate two examples of how thelength field504 ofFIG. 5A can be encoded. In the example shown inFIG. 5B, the most-significant bit510 of the fixedportion508 of thelength field504 is set to the first predetermined value (that is, a logical “1” value) and the remainingbits512 of the fixedportion508 of thelength field504 store a value of “10” (decimal), which indicates that thevalue field506 of thattriplet500 is 10 bytes long. In this example, thelength field504 does not include avariable portion514. In the example shown inFIG. 5C, the most-significant bit510 of the fixedportion508 of thelength field504 is set to the second predetermined value (that is, a logical “0” value) and the remainingbits512 of the fixedportion508 of thelength field504 store a value of “2”, which indicates that thevariable portion514 of thelength field504 is 2 bytes long. In the example shown inFIG. 5C, a value of “1024” is stored in thevariable portion514 of thelength field504, which indicates that thevalue field506 of thattriplet500 is 1024 bytes long.
Various bit-level encoding formats can be used to encode the lengths in the remainingportion512 of the fixedportion508 of the length field and in thevariable portion514 of the length field (for example, a form of n-bit encoding or another format such as the Basic Encoding Rules (BER) format).
As shown inFIGS. 5A-5C, thevalue field506 follows thelength field504 and contains the bits that actually contain the item of information stored in that particular key-length-value triplet500 (which is also referred to here as the “payload”). The encoding format used to encode such payload information in thevalue field506 is not limited to any particular format. For example, in one implementation it can be encoded using any encoding format recognized by thesoftware190 executing onprocessor106. Thus, in addition to identifying what information is stored in a particular key-length-value triplet500, thekey field502 can further indicate how the payload information is encoded in thevalue field506. Consequently, the encoding format used to encode payload information in one triplet'svalue field506 can be different from the encoding format used to encode payload information in other triplets. Further, when an item of information comprises multiple values, the bytes that make up the content of a triplet'svalue field506 can themselves further include sets of key-length-value triplets. The length of thevalue field506 can thus be adjusted to the size of the data used to encode the payload for each particular item of information, which enables the available memory onstorage device216 to be more efficiently utilized.
Another benefit of using key-length-value triplets to store information is that the information no longer needs to be stored in a particular sequence. That is, a triplet's key field does not necessarily indicate the sequence in which the associated item of information needs to be stored onstorage device216, just what type of item of information a particular triplet holds. Triplets can be stored in any order. As such, it is not necessary forstorage device216 to store a triplet for every potentially predefined key in order to keep thesoftware190 in sync when parsing the data read from thestorage device216. For example, if the key value of “abc” has been defined to identify a triplet that stores the results of a particular factory quality test, and that test is not applicable for a given segment ofphysical media212, then no key-length-value triplet with a key of “abc” needs to be stored on thecorresponding storage device216 just to maintain a certain sequence. Conversely, thesoftware190 does not need to be programmed with knowledge of every potentially predefined key in order parse the information it needs from the values stored on eachstorage device216. For example, a newly manufactured segment ofphysical media212 can store one or more items of information having key values not recognized (and not needed or used by) by aconnector assembly102 to which it will be attached. In some implementations, all triplets that are read from astorage device216 are forwarded onto theaggregation point120, even if thesoftware190 executing inconnector102 is not able to recognize some of the keys in the triplets.
FIG. 6 illustrates one example of howdata600 is stored on a storage device using the key-length-value scheme described above in connection withFIGS. 5A-5C. In this example, thedata600 stored on thestorage device216 comprises one copy of read-only data602 and two copies of read-write data604. In the absence of any errors, the two copies of the read-write data604 should be the same. The read-only data602 includes achecksum606, and each of the two copies of the read-write data604 includes arespective checksum608. Therefore, after reading all the data from thestorage device216, thesoftware190 will have one copy of the read-only data602 (and the checksum606) and two copies of the read-write data604 (and the respective checksums608). More details regarding this scheme are described in U.S. patent application Ser. No. ______, Attorney Docket No. 100.1176US01, filed on even date herewith and titled “DOUBLE-BUFFER INSERTION COUNT STORED IN A DEVICE ATTACHED TO A PHYSICAL LAYER MEDIUM”.
The read-only data602 contains multiple key-length-value triplets610 and612. In this example, the first key-length-value triplet610 in the read-only data602 contains a predetermined value in its key field. The first key-length-value triplet610 indicates that this triplet is indeed thefirst triplet610 and indicates that this data is the read-only data602. The length field of the first key-length triplet610 encodes the length of the value field of the first key-length-value triplet610 in the manner described above in connection withFIGS. 5A-5C. The value field of the first key-length-value triplet610 of the read-only data602 contains the length of the read-only data602. For example, where the read-only data602 is 8192 bytes long, the value field of the first key-length value triplet610 would contain the value “8192”.
Likewise, each of the copies of the read-write data604 contains multiple key-length-value triplets620 and622. In this example, the first key-length-value triplet620 in each of the copies of the read-write data604 contains a predetermined value in its key field. The first key-length-value triplet620 indicates that this triplet is indeed thefirst triplet620 and indicates that this copy of data is a copy of the read-write data604. The length field of the first key-length triplet620 encodes the length of the value field of the first key-length-value triplet620 in the manner described above in connection withFIGS. 5A-5C. The value field of the first key-length-value triplet620 of each copy of the read-write data604 contains the length of that copy of the read-write data604. For example, where each copy of the read-write data604 is 3072 bytes long, the value field of the first key-length value triplet620 would contain the value “3072”.
In the exemplary embodiment described here in connection withFIG. 6, the read-only data602 is stored on thestorage device216 starting at a fixedlocation630, and each copy of the read-write data604 is stored on thestorage device216 starting at a respective fixedlocation632. The fixedlocations630 and632 can be assigned in various ways. In one example, all threefixed locations630 and632 are known a priori by the various entities in thesystem100 that make use of the key-length-value triplets. In another example, the fixedlocation630 where the read-only data602 is stored is known a priori by the various entities in thesystem100 that make use of the key-length-value triplets, and the fixedlocation632 where each copy of the read-write data604 is stored is encoded in a respective key-length-value triplet included within the read-only data602. Other schemes can be used.
When theconnector214 on which thestorage device216 is mounted is inserted into aport104 of aconnector assembly102, thesoftware190 executing on theprogrammable processor106 learns of that fact and reads all of thedata600 stored on thestorage device216. Then, in this exemplary embodiment, the fixedlocations630 and632 are used to locate the beginning of the read-only data602 and each copy of the read-write data604, respectively. Then, the length of the read-only data602 stored in the value field of the first key-length-value triplet610 of the read-only data602 can be used to access thechecksum606, and the length of the read-write data604 stored in the value field of the first key-length-value triplet620 in each copy of the read-write data604 can be used to access thechecksums608. For example, thechecksum606 for the read-only data602 can be accessed by using the length stored in the value field of thefirst triplet610 included in the read-only data602 as an offset from the fixedlocation630 where the read-only data602 starts.
The start of the first copy of the read-write data604 is located at the respective fixedlocation632. Thechecksum608 for the first copy of the read-write data604 can be accessed by using the length stored in the value field of thefirst triplet620 included in the first copy of the read-write data604 as an offset from start of the first copy of the read-write data604 (that is, from the respective fixed location632).
Likewise, the start of the second copy of the read-write data604 is located at the respective fixedlocation632. Thechecksum608 for the second copy of the read-write data604 can be accessed by using the length stored in the value field of thefirst triplet620 included in the second copy of the read-write data604 as an offset from start of the second copy of the read-write data604 (that is, from the respective fixed location632).
As just described, the respective fixedlocations630 and632 can be used to access the start of the read-only data602 and each copy of the read-write data604. Each of the key-length-value triplets610,612,620, and622 in the read-only data602 and each copy of read-write data604 can be accessed using the length values stored in each of the length fields of thetriplets610,612,620, and622. Each first key-length-value triplet610 and620 is the first item in, and is located at the start of, the read-only data602 and each copy of the read-write data604, respectively. The start of the second key-length-value triplet612 and622 in the read-only data602 and each copy of the read-write data604, respectively, can be accessed by using the length stored in the length field of the respective first key-length-value triplet612 or622 as an offset from the beginning of the read-only data602 or the copy of read-write data604, respectively. The start of each successive key-length-value triplet612 or622 can be accessed by using the length stored in the length field of the respective preceding key-length-value triplet612 or622 as offset from the beginning of the start of that preceding key-length-value triplet612 or622.
In this way, if thesoftware190 needs access to a particular item of information for local processing at theconnector assembly102, thesoftware190 finds the triplet having the corresponding key and decodes the payload information from the value field of that triplet. Triplets having key field values unknown to or unused by thesoftware190 executing at theconnector assembly102 are ignored by thesoftware190 in connection with its local processing and are forwarded to theaggregation point120 along with all of the triplets read from thestorage device216. Such an implementation would have the advantage of only needing to update the software executing on theaggregation point120 when use of newly defined types of items of information is desired, rather than needing to update thesoftware190 associated with all of theconnector assemblies102 in thesystem100.
As another benefit of using key-length-value triplets as described herein, it is not necessary for the length of the value field used for a particular item of information to remain static once established. For example, if key “0xx” is currently stored instorage device216 in a key-length-value triplet using a 48-bit long value field, when an update to that item of information is written back tostorage device216, a different length value field (36-bit, or 64-bit, for example) can be used as long as the length field in the key-length-value triplet is modified accordingly to reflect the new value field length.
In other embodiments, other flexible and variable length storage schemes are used instead of using key-length-value triplets. In some other implementations of the embodiment shown inFIG. 2, information about the format, length, and/or content of the data stored on eachstorage device216 is included within a header or other predetermined portion of eachstorage device216. In one such example, each item of information stored on eachstorage device216 is stored using one or more fixed-sized data fields or elements. When aconnector214 is inserted into aport104 of aconnector assembly102, thesoftware190 executing on theprocessor106 associated with thatconnector assembly102 reads a field size key encoded in a header stored in thestorage device216 attached to thatconnector214. The field size key informs thesoftware190 of the structure used to store information in thatstorage device216 by providing the number of bits used for each such fixed data field stored on thestorage device216. As an example of this implementation in operation, when the field size key indicates a field size of “b” bits, as thesoftware190 read the data from thestorage device216, thesoftware190 will know that every sequence of “b” bits received after the header represent a different field of data. Knowing the sequence in which information is stored, thesoftware190 can parse the data read from thestorage device216 to obtain the values for whatever item of information it needs and/or to send the information to theaggregation point120. To update a particular item of information stored on astorage device216, in one implementation thesoftware190 encodes the updated information for that item back into a “b” bit sequence and overwrites the appropriate “b” bits on thestorage device216 corresponding to that item of information. In another implementation,storage device216 is updated by re-writing back tostorage device216 all of items of information read from thestorage device216, including any updated items.
For implementations wherestorage device216 is divided into a protected “read-only” area and a “writable” area, only information stored in the “writable” area is updated by thesoftware190. In one implementation, the “read-only” area and “writable” area each have their own respective field size keys. Accordingly, having a field size key for the “writable” area that is encoded in a header stored in the “writable” area provides for a scheme where theconnector assembly102 can store information back tostorage device216 using a data field length of “c” bits that is different from the “b” bits format initially used when theconnector214 was plugged into aport104.
Further details, embodiments, and implementations can be found in the following United States patent applications, all of which are hereby incorporated herein by reference: U.S. Provisional Patent Application Ser. No. 61/252,964, filed on Oct. 19, 2009, titled “ELECTRICAL PLUG FOR MANAGED CONNECTIVITY”, Attorney Docket No. 02316.3045USP1; U.S. Provisional Patent Application Ser. No. 61/253,208, filed on Oct. 20, 2009, titled “ELECTRICAL PLUG FOR MANAGED CONNECTIVITY”, Attorney Docket No. 02316.3045USP2; U.S. patent application Ser. No. 12/907,724, filed on Oct. 19, 2010, titled “MANAGED ELECTRICAL CONNECTIVITY SYSTEMS”, Attorney Docket No. 02316.3045USU1; U.S. Provisional Patent Application Ser. No. 61/303,948, filed on Feb. 12, 2010, titled “PANEL INCLUDING BLADE FEATURE FOR MANAGED CONNECTIVITY”, Attorney Docket No. 02316.3069USP1; U.S. Provisional Patent Application Ser. No. 61/413,844, filed on Nov. 15, 2010, titled “COMMUNICATIONS BLADED PANEL SYSTEMS”, Attorney Docket No. 02316.3069USP2; U.S. Provisional Patent Application Ser. No. 61/439,693, filed on Feb. 4, 2011, titled “COMMUNICATIONS BLADED PANEL SYSTEMS”, Attorney Docket No. 02316.3069USP3; U.S. patent application Ser. No. 13/025,730, filed on Feb. 11, 2011, titled “COMMUNICATIONS BLADED PANEL SYSTEMS”, Attorney Docket No. 02316.3069USU1; U.S. patent application Ser. No. 13/025,737, filed on Feb. 11, 2011, titled “COMMUNICATIONS BLADED PANEL SYSTEMS”, Attorney Docket No. 02316.3069USU2; U.S. patent application Ser. No. 13/025,743, filed on Feb. 11, 2011, titled “COMMUNICATIONS BLADED PANEL SYSTEMS”, Attorney Docket No. 02316.3069USU3; U.S. patent application Ser. No. 13/025,750, filed on Feb. 11, 2011, titled “COMMUNICATIONS BLADED PANEL SYSTEMS”, Attorney Docket No. 02316.3069USU4; U.S. Provisional Patent Application Ser. No. 61/303,961; filed on Feb. 12, 2010, titled “Fiber Plug And Adapter For Managed Connectivity”, Attorney Docket No. 02316.3071USP1; U.S. Provisional Patent Application Ser. No. 61/413,828, filed on Nov. 15, 2010, titled “Fiber Plugs And Adapters For Managed Connectivity”, Attorney Docket No. 02316.3071USP2; U.S. Provisional Patent Application Ser. No. 61/437,504, filed on Jan. 28, 2011, titled “Fiber Plugs And Adapters For Managed Connectivity”, Attorney Docket No. 02316.3071USP3; U.S. patent application Ser. No. 13/025,784, filed on Feb. 11, 2011, titled “Managed Fiber Connectivity Systems”, Attorney Docket No. 02316.3071USU1; U.S. patent application Ser. No. 13/025,788, filed on Feb. 11, 2011, titled “Managed Fiber Connectivity Systems”, Attorney Docket No 02316.3071USU2; U.S. patent application Ser. No. 13/025,797, filed on Feb. 11, 2011, titled “Managed Fiber Connectivity Systems”, Attorney Docket No. 02316.3071USU3; U.S. patent application Ser. No. 13/025,841, filed on Feb. 11, 2011, titled “Managed Fiber Connectivity Systems”, Attorney Docket No. 02316.3071USU4; U.S. Provisional Patent Application Ser. No. 61/413,856, filed on Nov. 15, 2010, titled “CABLE MANAGEMENT IN RACK SYSTEMS”, Attorney Docket No. 02316.3090USP1; U.S. Provisional Patent Application Ser. No. 61/466,696, filed on Mar. 23, 2011, titled “CABLE MANAGEMENT IN RACK SYSTEMS”, Attorney Docket No. 02316.3090USP2; U.S. Provisional Patent Application Ser. No. 61/252,395, filed on Oct. 16, 2009, titled “MANAGED CONNECTIVITY IN ELECTRICAL SYSTEMS”, Attorney Docket No. 02316.3021USP1; U.S. patent application Ser. No. 12/905,689, filed on Oct. 15, 2010, titled “MANAGED CONNECTIVITY IN ELECTRICAL SYSTEMS”, Attorney Docket No. 02316.3021USU1; U.S. Provisional Patent Application Ser. No. 61/252,386, filed on Oct. 16, 2009, titled “MANAGED CONNECTIVITY IN FIBER OPTIC SYSTEMS”, Attorney Docket No. 02316.3020USP1; and U.S. patent application Ser. No. 12/905,658, filed on Oct. 15, 2010, titled “MANAGED CONNECTIVITY IN FIBER OPTIC SYSTEMS”, Attorney Docket No. 02316.3020USU1.
A number of embodiments of the invention defined by the following claims have been described. Nevertheless, it will be understood that various modifications to the described embodiments may be made without departing from the spirit and scope of the claimed invention. Accordingly, other embodiments are within the scope of the following claims.