The present disclosure relates generally to communication networks, and more particularly, to automated network configuration.
Industrial network architectures are often based on designs with network devices interconnected in a preplanned format and used in environments such as factories, oil wells, or coal mines (referred to herein as a Plant) that have minimal training of plant operators in the use and configuration of the network devices. Operations such as replacing flash memory modules in devices may be risky, since the module may be corrupted, damaged, or simply missing, or may no longer be feasible in environments with sealed devices, which do not support removable modules. Maintenance personnel should therefore be able to install or replace network devices with little technical expertise.
Corresponding reference characters indicate corresponding parts throughout the several views of the drawings.
In one embodiment, a method generally comprises discovering at a master network device, a plurality of slave network devices and locations of the slave network devices in a closed network topology, storing at the master network device, a location, address, and status for each of the slave network devices, synchronizing the status of each of the slave network devices at the master network device, and transmitting from the master network device, a configuration for application at each of the slave network devices.
In another embodiment, an apparatus generally comprises a processor for processing a packet received from a master network device at a slave network device in a closed network topology comprising a plurality of slave network devices, transmitting a return packet to the master network device, the return packet comprising a location of the slave network device in the closed network topology, receiving a configuration from the master network device, and applying the configuration at the slave network device. The apparatus further comprises memory for storing the configuration.
The following description is presented to enable one of ordinary skill in the art to make and use the embodiments. Descriptions of specific embodiments and applications are provided only as examples, and various modifications will be readily apparent to those skilled in the art. The general principles described herein may be applied to other applications without departing from the scope of the embodiments. Thus, the embodiments are not to be limited to those shown, but are to be accorded the widest scope consistent with the principles and features described herein. For purpose of clarity, details relating to technical material that is known in the technical fields related to the embodiments have not been described in detail.
As industrial environments continue to evolve, many network users are looking for ways to improve Plant performance while reducing costs, downtime, and configuration errors. Simplified configuration of network devices for installation, management, and rapid replacement and recovery is therefore important in an industrial environment.
The embodiments described herein provide for dynamic maintenance of a network infrastructure without the need for a centralized management system. This allows for a unique grouping of network devices into logical mappings based on relative location to a master device, regardless of network topology. Certain embodiments provide for ease of use, installation, repair, recovery, and software distribution often needed in the industrial network environment.
As described in detail below, a master-slave relationship is used within the network topology. Initial system configuration may take place on the master device once a slave device is connected to a port on the master. The slave may request its configuration from the master based on the corresponding master device port, for example. When a slave within the network is replaced, the slave may request a new configuration from the master device, thereby reducing the possibility of a configuration error during installation. Certain embodiments may eliminate the need for a removable flash memory module, and in the case of a sealed unit device, the need for local programming of the device may also be eliminated.
Referring now to the drawings, and first to
Referring again to
Each of the networks shown in
As shown in
In one embodiment, NPCP is enabled at the port level on uplink ports designated as NPCP ports. NPCP may be manually enabled on all other ports (e.g., downlink ports). In the example shown in
It is to be understood that NPCP is used herein as an example of a protocol that may be used to implement embodiments described herein. The term NPCP (or network position control protocol) as used herein may refer to any protocol or mechanism that provides position detection as described herein.
As noted above, the master-slave relationship is used to maintain network infrastructure without the need for a centralized management system. The following describes an overview of the master-slave functions and relationships, in accordance with one embodiment. Details of the master-slave functions are described further below with respect to the examples shown in
The master device 10 may provide a configuration to each of the slave devices 12 for application at the slave device and maintain a complete inventory of all slave devices in the closed network topology. The slave devices 12 may each maintain a table identifying immediate upstream and downstream neighbors. In certain embodiments, the master 10 ensures that all slave devices 12 under its control are operating with the same version of operating system (OS). If the operating system installed at the slave device 12 does not match the operating system installed at the master device 10, the slave device may request the correct version of the operating system (or an update to the operating system) from the master device prior to performing a configuration process (described below).
The slave device 12 may request a configuration from the master device 10 after boot. For a power cycle, the slave device 12 may reboot and load a local configuration file, and then validate the configuration file with the master device 10. If there is a difference in files based upon a hash exchange, for example, the slave 12 may request a new configuration file from the master 10.
As described below, changes may be made at the master device 10 or directly on the slave device 12. When changes are made to configuration on the slave, the slave transmits a new configuration file to the master 10 to save as a replacement configuration file.
In one embodiment, the slave devices 12 may continually (e.g., periodically) generate messages (e.g., NPCP topology health messages) and transmit the messages to the master device 10. This allows the master device 10 to continually monitor and maintain topology accuracy and security. The slave device 12 may transmit a message (e.g., NPCP topology change message) to the master 10 if there is a transition of NPCP ports. The master device 10 may rerun a discovery process when an NPCP topology change message is received to validate NPCP topology.
It is to be understood that the networks shown in
Memory 24 may be a volatile memory or non-volatile storage, which stores various applications, modules, and data for execution and use by the processor 22.
The NPCP module 16 may be embedded in the network device through the use of software or hardware, or any mechanism operable to perform the functions described herein. For example, the NPCP module 16 may comprise logic and data structures (e.g., NPCP table, configuration table) stored in memory 24. The NPCP module 16 may include an API (Application Programming Interface).
In one example, the following information may be available at the NPCP module 16 at a master network device in a ring topology containing five slave network devices:
An example of an NPCP table is shown in Table I below. The table includes node ID, node name, OS version, configuration version, and port information. It is to be understood that the table and data contained within the table are only examples, and that different data structures or data may be used.
Logic may be encoded in one or more tangible non-transitory computer readable media for execution by the processor 22. For example, the processor 22 may execute codes stored in a computer-readable medium such as memory 24. The computer-readable medium may be, for example, electronic (e.g., RAM (random access memory), ROM (read-only memory), EPROM (erasable programmable read-only memory)), magnetic, optical (e.g., CD, DVD), electromagnetic, semiconductor technology, or any other suitable medium.
The interfaces 26 may comprise any number of interfaces (linecards, ports) for receiving data or transmitting data to other devices. The interface 22 may include, for example, an Ethernet interface for connection to a computer or network
The network device 20 may further include any suitable combination of hardware, software, algorithms, processors, devices, components, or elements operable to facilitate the capabilities described herein.
It is to be understood that the process illustrated in
In one example, slave-1 increments the first two bytes of the payload from 0000 0000 0000 0000 to 0000 0000 0000 0001 and transmits the packet to the next slave 12 in the chain (slave-2 in
The above process continues until all slave devices 12 have been discovered (46). For example, a slave-3 device (not shown) may receive NPCP packet from the master 10 and designate the port receiving the packet as an NPCP upstream. Slave-3 may then increment the first two bytes of the payload from 0000 0000 0000 0000 to 0000 0000 0000 0011 and transmit the packet to the next slave in the chain, designating transmit port as NPCP downstream. Slave-3 may also transmit the packet back to the master 10 including 0000 0000 0000 0011, MAC address, NPCP status, and version of operating system. This continues for each slave device (e.g., slave-x). For example, slave-X receives NPCP packet from the master 10 and designates port receiving packet as NPCP upstream. Slave-X may then increment the first two bytes of the payload from 0000 0000 0000 0000 to 0000 0000 xxxx xxxx and transmit the packet to the next slave device 12 in the chain, designating transmit port as NPCP downstream. Slave-x may also transmit the packet back to the master including 0000 0000 xxxx xxxx, MAC Address, NPCP status, and version of operating system. If this is the last slave device 12 in the chain, the slave may add an additional ffff ffff byte to the payload after the operating system version.
If the master and slave devices 10, 12 are in a star topology, the NPCP packets will be sent directly between the master and each of the slave devices. In the case of a linear topology, return packets will be sent on a return path back to the master device 10.
After reload, the master device 10 may notify all slave devices 12 to reset to factory default mode and reload. After all affected slave devices 12 have reported a successful second reload; the master 10 may initiate a unicast message to each slave device signaling the slave to request its associated configuration. After all slave devices 12 have notified the master 10 of successful configuration download and application, the master sets topology to active. All slave devices 12 set NPCP status to up, configuration status 1, for example. After receiving configuration from the master 10, the slave may set NPCP configuration status to up (0001). The slave devices 12 may then transmit NPCP status to the master 10 indicating operational up status and the slaves may begin transmitting NPCP topology health messages back to the master 10.
Referring first to
Referring now to
The master 10 compares the received address to current NPCP inventory (133). If the address is not contained in inventory and there is no new slave configuration added to the master configuration, the master may transmit an NPCP broadcast to all slaves 12 to shutdown traffic forwarding for all traffic except NPCP control traffic (134).
If new slave-2 is not created on the master 10 before installation, installation will result in triggering rogue slave detection and taking the network offline (as described above with respect to
It is to be understood that the processes shown in
Although the method and apparatus have been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations made without departing from the scope of the embodiments. Accordingly, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.