EP4262168A1 - Network configuration management system - Google Patents
Network configuration management system Download PDFInfo
- Publication number
- EP4262168A1 EP4262168A1 EP23168068.7A EP23168068A EP4262168A1 EP 4262168 A1 EP4262168 A1 EP 4262168A1 EP 23168068 A EP23168068 A EP 23168068A EP 4262168 A1 EP4262168 A1 EP 4262168A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- network
- truth
- network configuration
- information
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 97
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000013519 translation Methods 0.000 claims abstract description 4
- 238000012508 change request Methods 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 239000000463 material Substances 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 57
- 238000003860 storage Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
Definitions
- This invention relates to a network configuration management system.
- Networks are incredibly complex physical and digital architectures. In virtually any building of sufficient size, such as hospitals, shopping malls, hotels, or large office buildings, the network complexity and frequency of changes to the network mandate the near full-time attention of expensive professionals to ensure that the network remains sufficiently operational. Networks may include a large number of devices with a vast variety of identities, manufacturing years, origins of manufacture, and capabilities.
- the present disclosure provides a computer-implemented method for discovering a configuration of a network, the network having a plurality of heterogenous devices and a device hierarchy, the method including the steps of:
- the method further includes the steps of:
- the method further includes, when used for changing a configuration of a network, the steps of:
- the method further includes the step of:
- the method further includes the step of: creating, using the first set of network configuration data, a site survey plan for obtaining the second set of network configuration data, the site survey plan including device identity information and physical location information that is derivable from the first set of network configuration data.
- the method further includes the steps of:
- the method further includes the steps of:
- the method further includes the steps of:
- the method further includes the step of: providing the device firmware plan and the orchestration plan to an operator for approval.
- the method further includes the step of: updating the source of truth based on the network configuration change request.
- the method further includes the steps of:
- the method further includes the steps of:
- the method further includes the steps of:
- the method further includes the step of:
- the method further includes the step of: providing the device configuration plan and the orchestration plan to an operator for approval.
- the present disclosure also provides a non-transient computer-readable medium containing executable instructions for configuring a processor of a processing system to change a configuration of a network, wherein execution of the executable instructions by the processor configures the processor to perform the steps of the method of the disclosed method.
- the present disclosure also provides one or more servers performing the disclosed method.
- the present disclosure also provides a system for managing the configuration of a network, the system including:
- FIGS. 1A and 1B depict a general-purpose computer system 100, upon which the various arrangements described can be practiced.
- the computer system 100 includes: a computer module 101; input devices such as a keyboard 102, a mouse pointer device 103, a scanner 126, a camera 127, and a microphone 180; and output devices including a printer 115, a display device 114 and loudspeakers 117.
- An external Modulator-Demodulator (Modem) transceiver device 116 may be used by the computer module 101 for communicating to and from a communications network 120 via a connection 121.
- the communications network 120 may be a wide-area network (WAN), such as the Internet, a cellular telecommunications network, or a private WAN.
- WAN wide-area network
- the modem 116 may be a traditional "dial-up" modem.
- the modem 116 may be a broadband modem.
- a wireless modem may also be used for wireless connection to the communications network 120.
- the computer module 101 typically includes at least one processor unit 105, and a memory unit 106.
- the memory unit 106 may have semiconductor random access memory (RAM) and semiconductor read only memory (ROM).
- the computer module 101 also includes a number of input/output (I/0) interfaces including: an audio-video interface 107 that couples to the video display 114, loudspeakers 117 and microphone 180; an 1/0 interface 113 that couples to the keyboard 102, mouse 103, scanner 126, camera 127 and optionally a joystick or other human interface device (not illustrated), or a projector; and an interface 108 for the external modem 116 and printer 115.
- the modem 116 may be incorporated within the computer module 101, for example within the interface 108.
- the computer module 101 also has a local network interface 111, which permits coupling of the computer system 100 via a connection 123 to a local-area communications network 122, known as a Local Area Network (LAN).
- LAN Local Area Network
- the local communications network 122 may also couple to the wide network 120 via a connection 124, which would typically include a so-called "firewall" device or device of similar functionality.
- the local network interface 111 may comprise an Ethernet circuit card, a Bluetooth ® wireless arrangement or an IEEE 802.11 wireless arrangement; however, numerous other types of interfaces may be practiced for the interface 111.
- the 1/0 interfaces 108 and 113 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards and having corresponding USB connectors (not illustrated).
- Storage devices 109 are provided and typically include a hard disk drive (HDD) 110. Other storage devices such as a floppy disk drive and a magnetic tape drive (not illustrated) may also be used.
- An optical disk drive 112 is typically provided to act as a non-volatile source of data.
- Portable memory devices such optical disks (e.g., CD-ROM, DVD, Blu-ray TM Disc), USB-RAM, portable, external hard drives, and floppy disks, for example, may be used as appropriate sources of data to the system 100.
- the components 105 to 113 of the computer module 101 typically communicate via an interconnected bus I 04 and in a manner that results in a conventional mode of operation of the computer system 100 known to those in the relevant art.
- the processor 105 is coupled to the system bus 104 using a connection 118.
- the memory 106 and optical disk drive 112 are coupled to the system bus 104 by connections 119. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun SPARCstations, Apple Mac TM or a like computer system.
- the methods as described herein may be implemented using the computer system 100 wherein the processes of FIGS. 3 to 15 , to be described, may be implemented as one or more software application programs 133 executable within the computer system 100.
- the steps of the methods described herein are effected by instructions 131 (see FIG. 1B ) in the software 133 that are carried out within the computer system 100.
- the software instructions 131 may be formed as one or more code modules, each for performing one or more particular tasks.
- the software may be stored in a non-transient computer readable medium, including the storage devices described below, for example.
- the software is loaded into the computer system 100 from the computer readable medium, and then executed by the computer system 100.
- a computer readable medium having such software or computer program recorded on the computer readable medium is a computer program product.
- the use of the computer program product in the computer system 100 preferably affects an advantageous apparatus for detecting and/or sharing writing actions.
- the software 133 is typically stored in the HDD 110 or the memory 106.
- the software is loaded into the computer system 100 from a computer readable medium, and executed by the computer system 100.
- the software 133 may be stored on an optically readable disk storage medium (e.g., CD-ROM) 125 that is read by the optical disk drive 112.
- a computer readable medium having such software or computer program recorded on it is a computer program product.
- the use of the computer program product in the computer system 100 preferably affects the computer-implemented method for extracting content from a physical writing surface.
- the application programs 133 may be supplied to the user encoded on one or more CD-ROMs 125 and read via the corresponding drive 112, or alternatively may be read by the user from the networks 120 or 122. Still further, the software can also be loaded into the computer system 100 from other computer readable media.
- Computer readable storage media refers to any non-transitory tangible storage medium that provides recorded instructions and/or data to the computer system 100 for execution and/or processing.
- Examples of such storage media include floppy disks, magnetic tape, CD-ROM, DVD, Blu-ray TM Disc, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, or a computer readable card such as a Personal Computer Memory Card International Association (PCMCIA) card and the like, whether or not such devices are internal or external of the computer module 101.
- Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the computer module 101 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
- the second part of the application programs 133 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 114.
- GUIs graphical user interfaces
- a user of the computer system 100 and the application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s).
- Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via the loudspeakers 117 and user voice commands input via the microphone 180.
- FIG. 1B is a detailed schematic block diagram of the processor 105 and a "memory" 134.
- the memory 134 represents a logical aggregation of all the memory modules (including the HDD 109 and semiconductor memory 106) that can be accessed by the computer module 101 in FIG. 1A .
- a power-on self-test (POST) program 150 executes.
- the POST program 150 is typically stored in a ROM 149 of the semiconductor memory 106 of Fig. 1A .
- a hardware device such as the ROM 149 storing software is sometimes referred to as firmware.
- the POST program 150 examines hardware within the computer module 101 to ensure proper functioning and typically checks the processor 105, the memory 134 (109, 106), and a basic input-output systems software (BIOS) module 151, also typically stored in the ROM 149, for correct operation. Once the POST program 150 has run successfully, the BIOS 151 activates the hard disk drive 110 of FIG.
- Activation of the hard disk drive 110 causes a bootstrap loader program 152 that is resident on the hard disk drive 110 to execute via the processor 105.
- the operating system 153 is a system level application, executable by the processor 105, to fulfil various high-level functions, including processor management, memory management, device management, storage management, software application interface, and generic user interface. It is now common for multiple independent operating systems to be hosted on the same processor 105 using so-called virtualization applications.
- the operating system 153 manages the memory 134 (109, 106) to ensure that each process or application running on the computer module 101 has sufficient memory in which to execute without colliding with memory allocated to another process. Furthermore, the different types of memory available in the system 100 of FIG. 1A must be used properly so that each process can run effectively. Accordingly, the aggregated memory 134 is not intended to illustrate how particular segments of memory are allocated (unless otherwise stated), but rather to provide a general view of the memory accessible by the computer system 100 and how such is used.
- the processor 105 includes a number of functional modules including a control unit 139, an arithmetic logic unit (ALU) 140, and a local or internal memory 148, sometimes called a cache memory.
- the cache memory 148 typically includes a number of storage registers 144 - 146 in a register section.
- One or more internal busses 141 functionally interconnect these functional modules.
- the processor I 05 typically also has one or more interfaces 142 for communicating with external devices via the system bus 104, using a connection 118.
- the memory 134 is coupled to the bus 104 using a connection 119.
- the application program 133 includes a sequence of instructions 131 that may include conditional branch and loop instructions.
- the program 133 may also include data 132 which is used in execution of the program 133.
- the instructions 131 and the data 132 are stored in memory locations 128, 129, 130 and 135, 136, 137, respectively.
- a particular instruction may be stored in a single memory location as depicted by the instruction shown in the memory location 130.
- an instruction may be segmented into a number of parts, each of which is stored in a separate memory location, as depicted by the instruction segments shown in the memory locations 128 and 129.
- the processor 105 is given a set of instructions which are executed therein.
- the processor I 05 waits for a subsequent input, to which the processor 105 reacts to by executing another set of instructions.
- Each input may be provided from one or more of a number of sources, including data generated by one or more of the input devices 102, 103, data received from an external source across one of the networks 120, 102, data retrieved from one of the storage devices 106, 109 or data retrieved from the storage medium 125 inserted into the corresponding reader 112, all depicted in FIG. 1A
- the execution of a set of the instructions may in some cases result in output of data. Execution may also involve storing data or variables to the memory 134.
- the disclosed writing detection and sharing arrangements use input variables 154, which are stored in the memory 134 in corresponding memory locations 155, 156, 157.
- the writing detection and sharing arrangements produce output variables 161, which are stored in the memory 134 in corresponding memory locations 162, 163, 164.
- Intermediate variables 158 may be stored in memory locations 159, 160, 166 and 167.
- each fetch, decode, and execute cycle comprises:
- a further fetch, decode, and execute cycle for the next instruction may be executed.
- a store cycle may be performed by which the control unit 139 stores or writes a value to a memory location 162.
- Each step or sub-process in the processes of FIGS. 3 to 15 is associated with one or more segments of the program 133 and is performed by the register section 144, 145, 147, the ALU 140, and the control unit 139 in the processor 105 working together to perform the fetch, decode, and execute cycles for every instruction in the instruction set for the noted segments of the program 133.
- the methods described herein may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the writing detection and sharing methods.
- dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
- FIGS. 2A and 2B collectively form a schematic block diagram of a general-purpose electronic device 201 including embedded components, upon which the writing detection and/or sharing methods to be described are desirably practiced.
- the electronic device 201 may be, for example, a mobile phone, a portable media player, virtual reality glasses, augmented reality glasses, or a digital camera, in which processing resources may be limited. Nevertheless, the methods to be described may also be performed on higher-level devices such as desktop computers, server computers, and other such devices with significantly larger processing resources.
- the electronic device 201 comprises an embedded controller 202. Accordingly, the electronic device 201 may be referred to as an "embedded device.”
- the controller 202 has a processing unit (or processor) 205 which is bidirectionally coupled to an internal storage module 209.
- the storage module 209 may be formed from non-volatile semiconductor read only memory (ROM) 260 and semiconductor random access memory (RAM) 270, as seen in FIG. 2B .
- the RAM 270 may be volatile, non-volatile or a combination of volatile and non-volatile memory.
- the electronic device 201 includes a display controller 207, which is connected to a display 214, such as a liquid crystal display (LCD) panel or the like.
- the display controller 207 is configured for displaying graphical images on the display 214 in accordance with instructions received from the embedded controller 202, to which the display controller 207 is connected.
- the electronic device 201 also includes user input devices 213 which are typically formed by keys, a keypad or like controls.
- the user input devices 213 may include a touch sensitive panel physically associated with the display 214 to collectively form a touch-screen.
- Such a touch-screen may thus operate as one form of graphical user interface (GUI) as opposed to a prompt or menu driven GUI typically used with keypad-display combinations.
- GUI graphical user interface
- Other forms of user input devices may also be used, such as a microphone (not illustrated) for voice commands or a j oystick/thumb wheel (not illustrated) for ease of navigation about menus.
- the electronic device 201 also comprises a portable memory interface 206, which is coupled to the processor 205 via a connection 219.
- the portable memory interface 206 allows a complementary portable memory device 225 to be coupled to the electronic device 201 to act as a source or destination of data or to supplement the internal storage module 209. Examples of such interfaces permit coupling with portable memory devices such as USB memory devices, Secure Digital (SD) cards, PCMIA cards, optical disks and magnetic disks.
- SD Secure Digital
- the electronic device 201 also has a communications interface 208 to permit coupling of the device 201 to a computer or communications network 220 via a connection 221.
- the connection 221 may be wired or wireless.
- the connection 221 may be radio frequency or optical.
- An example of a wired connection includes Ethernet.
- an example of wireless connection includes Bluetooth TM type local interconnection, Wi-Fi (including protocols based on the standards of the IEEE 802.11 family), Infrared Data Association (IrDa) and the like.
- the electronic device 201 is configured to perform some special function.
- the embedded controller 202 possibly in conjunction with further special function components 210, is provided to perform that special function.
- the components 210 may represent a lens, focus control and image sensor of the camera.
- the special function component 210 is connected to the embedded controller 202.
- the device 201 may be a mobile telephone handset.
- the components 210 may represent those components required for communications in a cellular telephone environment.
- the special function components 210 may represent a number of encoders and decoders of a type including Joint Photographic Experts Group (JPEG), (Moving Picture Experts Group) MPEG, MPEG-1 Audio Layer 3 (MP3), and the like.
- JPEG Joint Photographic Experts Group
- MP3 MPEG-1 Audio Layer 3
- the methods described hereinafter may be implemented using the embedded controller 202, where the processes of FIGS. 3 to 12 may be implemented as one or more software application programs 233 executable within the embedded controller 202.
- the electronic device 201 of FIG. 2A implements the described methods.
- the steps of the described methods are effected by instructions in the software 233 that are carried out within the controller 202.
- the software instructions may be formed as one or more code modules, each for performing one or more particular tasks.
- the software may also be divided into two separate parts, in which a first part and the corresponding code modules performs the described methods and a second part and the corresponding code modules manage a user interface between the first part and the user.
- the software 233 of the embedded controller 202 is typically stored in the non-volatile ROM 260 of the internal storage module 209.
- the software 233 stored in the ROM 260 can be updated when required from a computer readable medium.
- the software 233 can be loaded into and executed by the processor 205.
- the processor 205 may execute software instructions that are located in RAM 270.
- Software instructions may be loaded into the RAM 270 by the processor 205 initiating a copy of one or more code modules from ROM 260 into RAM 270.
- the software instructions of one or more code modules may be preinstalled in a non-volatile region of RAM 270 by a manufacturer. After one or more code modules have been located in RAM 270, the processor 205 may execute software instructions of the one or more code modules.
- the application program 233 is typically pre-installed and stored in the ROM 260 by a manufacturer, prior to distribution of the electronic device 201. However, in some instances, the application programs 233 may be supplied to the user encoded on one or more CD-ROM (not shown) and read via the portable memory interface 206 of FIG. 2A prior to storage in the internal storage module 209 or in the portable memory 225. In another alternative, the software application program 233 may be read by the processor 205 from the network 220, or loaded into the controller 202 or the portable storage medium 225 from other computer readable media.
- Computer readable storage media refers to any non-transitory tangible storage medium that participates in providing instructions and/or data to the controller 202 for execution and/or processing.
- Examples of such storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, flash memory, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the device 201.
- Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the device 201 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
- a computer readable medium having such software or computer program recorded on it is a computer program product.
- the second part of the application programs 233 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 214 of FIG. 2A .
- GUIs graphical user interfaces
- a user of the device 201 and the application programs 233 may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s).
- Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via loudspeakers (not illustrated) and user voice commands input via the microphone (not illustrated).
- FIG. 2B illustrates in detail the embedded controller 202 having the processor 205 for executing the application programs 233 and the internal storage 209.
- the internal storage 209 comprises read only memory (ROM) 260 and random access memory (RAM) 270.
- the processor 205 is able to execute the application programs 233 stored in one or both of the connected memories 260 and 270.
- ROM read only memory
- RAM random access memory
- the processor 205 is able to execute the application programs 233 stored in one or both of the connected memories 260 and 270.
- the application program 233 permanently stored in the ROM 260 is sometimes referred to as "firmware".
- Execution of the firmware by the processor 205 may fulfil various functions, including processor management, memory management, device management, storage management and user interface.
- the processor 205 typically includes a number of functional modules including a control unit (CU) 251, an arithmetic logic unit (ALU) 252, a digital signal processor (DSP) 253 and a local or internal memory comprising a set of registers 254 which typically contain atomic data elements 256, 257, along with internal buffer or cache memory 255.
- One or more internal buses 259 interconnect these functional modules.
- the processor 205 typically also has one or more interfaces 258 for communicating with external devices via system bus 281, using a connection 261.
- the processor 205 may be a collection of FPGA processors, known as a "graphics card", in which case the connection 261 is commonly a PCI-Express bus.
- the application program 233 includes a sequence of instructions 262 through 263 that may include conditional branch and loop instructions.
- the program 233 may also include data, which is used in execution of the program 233. This data may be stored as part of the instruction or in a separate location 264 within the ROM 260 or RAM 270.
- the processor 205 is given a set of instructions, which are executed therein. This set of instructions may be organised into blocks, which perform specific tasks or handle specific events that occur in the electronic device 201. Typically, the application program 233 waits for events and subsequently executes the block of code associated with that event. Events may be triggered in response to input from a user, via the user input devices 213 of FIG. 2A , as detected by the processor 205. Events may also be triggered in response to other sensors and interfaces in the electronic device 201.
- the execution of a set of the instructions may require numeric or non-numeric variables to be read and modified. Such numeric variables are stored in the RAM 270.
- the disclosed method uses input variables 271 that are stored in known locations 272, 273 in the memory 270.
- the input variables 271 are processed to produce output variables 277 that are stored in known locations 278, 279 in the memory 270.
- Intermediate variables 274 may be stored in additional memory locations in locations 275, 276 of the memory 270. Alternatively, some intermediate variables may only exist in the registers 254 of the processor 205.
- the execution of a sequence of instructions is achieved in the processor 205 by repeated application of a fetch-execute cycle.
- the control unit 251 of the processor 205 maintains a register called the program counter, which contains the address in ROM 260 or RAM 270 of the next instruction to be executed.
- the contents of the memory address indexed by the program counter is loaded into the control unit 251.
- the instruction thus loaded controls the subsequent operation of the processor 205, causing for example, data to be loaded from ROM memory 260 into processor registers 254, the contents of a register to be arithmetically combined with the contents of another register, the contents of a register to be written to the location stored in another register and so on.
- the program counter is updated to point to the next instruction in the system program code. Depending on the instruction just executed this may involve incrementing the address contained in the program counter or loading the program counter with a new address in order to achieve a branch operation.
- Each step or sub-process in the processes of the methods described below is associated with one or more segments of the application program 233, and is performed by repeated execution of a fetch-execute cycle in the processor 205 or similar programmatic operation of other independent processor blocks in the electronic device 201.
- FIG. 3 shows a flowchart of a computer-implemented method for changing a configuration of a network 120 according to a preferred embodiment of the invention.
- the network 120 contains a plurality of devices 302a, 302b, 302c, 302d, 302e, collectively device 302.
- the devices 302 are typically heterogenous, meaning that the function of each device 302 may be different, for example one device 302 may be a router, while another is a switch, a personal computer, a server, or other devices 302 that may be connected to the network 120. Further, each device 302 is connected to the network 120 in a hierarchy, as also shown in FIG. 4 .
- a group of devices 302c may be connected to a switch 302b, thus the switch 302b is in a higher hierarchy level than the group of devices 302c.
- a group of switches 302b may be connected to a higher level switch 302a, thus the switch 302a is in a yet higher hierarchy level than the group of switches 302b.
- step 301 by discovering, using a link layer protocol, such as the link layer discovery protocol (LLDP), a first set of network configuration data.
- step 301 includes being provided with a home device whose access credentials are known, and then obtaining information about the identity of the home device by accessing the home device using SSH. Libraries such as Napalm are able to identify the home device by the behaviour of the home device in response to certain SSH commands, as well as packet-layer specific behaviour of the home device. Once the home device has been identified, generic commands may be translated to device-specific LLDP commands using the Napalm library to gather more specific information about the home device. Once all relevant or desired information about the home device has been obtained, the neighbours of the home device are identified by polling active network connections and the process is repeated for each neighbouring device, until all devices on the network are identified.
- LLDP link layer discovery protocol
- the first set of network configuration data includes information in relation to each discovered device 302, for example, the first set of network configuration data may include a first firmware information relating to the firmware version and/or date of the device 302.
- the first set of network configuration data may also include a first device identity information, relating to one or more of a manufacturer, a model number, a MAC address, or a IMEI number of the device 302.
- the first set of network configuration data may further include a first device configuration information relating to one or more of a port configuration, a firewall configuration, a listing of connected devices, or any other type of configurable settings that may apply to the device 302.
- the method then proceeds, at step 303, by creating, using the first set of network configuration data, a network configuration source of truth 310.
- the source of truth 310 includes a firmware truth, based on the first firmware information, a device identity truth, based on the first device identity information, a device configuration truth, based on the first device configuration information, and a device hierarchy truth that is determined based on the first device configuration information.
- the method also includes, at step 315, receiving a second set of network configuration data.
- the second set of network configuration data was obtained by conducting a physical site survey of the network 120, that is, physically inspecting the identity and location of each device 302 connected to the network 120.
- the second set of network configuration data preferably includes, in relation to each device 302, a physical location information related to a physical location of the device.
- the second set of network configuration data may also include a physical connectivity information relating to one or more of a port configuration of the device 302, an access restriction or capability of the device 302, such as capacity of cable trays and conduits.
- the second set of network configuration data may also include a second firmware information and a second device identity information that a similar in nature to the first firmware information and the first device identity information, but gathered from the physical site survey of the network 120.
- the source of truth 310 is created in step 303b based on a combination of the first and second sets of network configuration data by comparing the first set of network configuration data to the second set of network configuration data, while flagging and excluding conflicting information between these data sets.
- the physical location information and physical connectivity information are added to the source of truth 310 as a physical location truth and a physical connectivity truth.
- the method may include step 313 of creating, based on the first set of network configuration data, a site survey plan 320 for obtaining the second set of network configuration data.
- the site survey plan 320 preferably includes hierarchical physical location information 351, for example information relating to a building, level in the building, room on the level, and location in the room of devices 302.
- the site survey plan 320 may also include device identity information 353 and physical location and/or connectivity information that is derivable from the first set of network configuration data, such as identity and number of ports, or identification numbers of the equipment, to be verified by the physical site survey.
- the physical location information may, for example, be derived from an estimate of the signal quality from known locations of devices 302 in the network 120, as well as time of flight calculations of data transfer between the devices 302.
- the method processes such changes in configuration by, at step 305, receiving a network configuration change request that may relate to one or more devices 302 in the network 120.
- the network configuration change request may include details as to how the configuration of the network 120 is to be altered, in terms of configuration, firmware, connection, and/or presence of each device 302.
- the method proceeds, at step 307, by determining a device configuration plan 360 based on the network configuration change request, the device configuration truth, and the device identity truth.
- the device configuration plan 360 includes an updated device configuration information for each device 302 affected by the network configuration change request 350.
- the updated device configuration information is determined for each device 302 based on the device identity truth, since each device 302 may require different configuration information to have the desired effect, due to the heterogenous nature of the devices 302.
- the source of truth 310 includes a configuration library that allows translation of a generic configuration instruction, contained in the network configuration change request, to a specific configuration instruction adapted to affect the intent of the generic configuration instruction in the specific device 302. For example a set of generic instructions as shown below, may be translated to the device specific instructions shown thereafter.
- the configuration library is a collation of manufacturer-provided user instructions as to how each device 302 may be configured, that is linked to a generic instruction language for the type of network configurations typically performed by the method.
- the method continues, with step 309, by determining an orchestration plan 370 based on the network configuration change request, the device identity truth, and the device hierarchy truth.
- the orchestration plan 370 includes an order of devices 302 affected by the network configuration change request 350. Configuration changes to networks 120 should be carried out in a specific order to avoid a configuration change to a node device, for example a switch, leading to a loss of communication with devices connected to the switch as a result of the configuration change to the switch. To avoid these situations, the orchestration plan 370 specifies the order 372 in which the device configuration plan 360 should be applied.
- the orchestration plan 370 is determined based on the hierarchy truth, as well as a hierarchy library, such as a look-up table, that allows, using the generic configuration instructions, the identification of changes to device configuration truths that can be conducted in parallel, and the identification of changes to device configuration truths that must be conducted sequentially, either top-down, or bottom-up.
- a hierarchy library such as a look-up table
- devices 302 in the arm 365 must be configured before device 302 at position 367 may be configured.
- the steps of the orchestration plan 370 are recited in the device configuration plan 360, as shown in FIG. 14 .
- the method applies the updated device configuration information to each device 302 affected by the network configuration change request 350 in the order 372 of the orchestration plan 370.
- a network update definition 330 is created that includes a new device identity information and a new device configuration information relating to devices 302 to be added to the network 120.
- the network update definition 330 may also include a new device physical location information, relating to a location in which the device 302 is to be added, and a new device physical connectivity information, similar in nature to the physical connectivity information.
- the network update definition 330 may also, or instead, include a device removal information of devices 302 that are to be removed from the network 120.
- a bill of materials 340 is determined, based on the network update definition 330 and the source of truth 310. As shown in FIG. 13 , the bill of materials 340 extends beyond the devices 302 to be added, and also includes devices 302 that may be required to allow connection of the devices 302 to be added to the network 120, based on the present capabilities of the network 120, as evident from the source of truth 310. The bill of materials 340 may further include materiel that is required to physically connect the devices 302 to be added to the network 120, based on the physical location and physical connectivity truths and the network update definition 330.
- the method continues, at step 321, by creating a network configuration change request 350 by comparing the network update definition 330 to the source of truth 310.
- the network configuration change request 350 may then be processed as discussed above.
- the method may, as shown in FIG. 7 include step 323 of receiving a confirmation that the devices 302 to be installed to fulfill the network update definition 330 have been installed.
- the method then continues at step 325 by discovering, using the link layer protocol, a third set of network configuration data that is substantially similar to the first set of network configuration data, but contains information relating to the devices 302 that have been installed.
- the third set of network configuration data is compared, at step 327, to the source of truth 310 to update the source of truth 310 with the third set of network configuration data, if the third set of network configuration data is consistent with the network update definition.
- the method also removes and/or flags conflicts of the third set of network configuration data from the source of truth 310, such that information relating to devices that have been removed from, or moved within, the network 120 is updated.
- the network configuration change request may relate to a change in firmware instead of, or in addition to, a change in device configuration.
- the method may thus also include step 329 of determining a device firmware plan 380 based on the network configuration change request 350, the device identity truth, and the device firmware truth.
- the device firmware plan 380 includes updated firmware information for one or more device affected by the network configuration change request 350.
- the updated firmware information may include information relating to the new firmware version number and/or date, a flashable copy of the new firmware, and/or instructions to flash the new firmware onto the device 302 from a local or remote source.
- step 333 by applying the firmware plan, including the updated firmware information, to the one or more devices affected by the network configuration change request 350 in the order 372 of the orchestration plan 370.
- the source of truth is updated based on the network configuration change request, at step 335.
- the device firmware plan 380 and the orchestration plan 370 are produced to an operator for approval of the plans 370, 380 before execution of the plans.
- the method also includes step 337 of receiving an NOC network configuration standard 390.
- the NOC network configuration standard 390 includes information relating to allowable firmware versions 369, allowed ciphers 371 that may be used on the network 120, and preferred network configuration settings 373.
- the NOC network configuration standard 390 is formatted in terms of the generic, device-agnostic, configuration instruction language, so that the standard can be applied across the heterogenous devices 302 of the network 120.
- the method proceeds with step 339 of creating a network configuration change request by comparing the source of truth 310 to the NOC standard 390.
- the NOC standard 390 may be translated to device-specific configuration instruction language using the aforementioned library, to allow comparison against the source of truth 310.
- the resulting network configuration change request includes a device configuration plan 360 and/or a device firmware plan 380 such that, after application of the network configuration change request as previously discussed, the source of truth 310 is compliant with the NOC network configuration standard 390.
- the method also includes step 341 of receiving a second network configuration standard.
- the second network configuration standard 400 includes similar information to the NOC network configuration standard 390.
- NOC network configuration standard is issued by device manufacturers, while the second network configuration standard may be a standard applied by an owner of the network 120, or be an obligation the owner of the network 120 has, such as a franchise agreement.
- a common industry term is "brand standard", as is commonly applied in, for example, hotels so that a user experience of the network 120 is substantially similar between different locations of the same brand.
- the second network configuration standard 400 is formatted in terms of the generic, device-agnostic, configuration instruction language.
- the method may proceed with step 345 of creating a network configuration change request by comparing the source of truth 310 to the second standard 400.
- the second standard 400 may be translated to device-specific configuration instruction language using the aforementioned library, to allow comparison against the source of truth 310.
- the resulting network configuration change request 350 includes a device configuration plan 360 and/or a device firmware plan 380 such that, after application of the network configuration change request 350, the source of truth 310 is compliant with the second network configuration standard 400.
- the NOC and second standards 390, 400 may also be applied to a network configuration change request 350 that was created in a different portion of the present method.
- the network configuration change request is, at step 343, compared to the NOC and second standards 390, 400 to alter, add, and/or delete portions of the device configuration plan 360 and/or the device firmware plan 380 such that, after application of the network configuration change request 350, the source of truth 310 is compliant with the standards 390, 400.
- the method periodically, after a time interval, for example after 24h, 7 days, 1 month, 3 months, 6 months, or 1 year, the method includes step 347 of discovering, using the link layer protocol, the third set of network configuration data and, at step 349, comparing the third set of network configuration data to the source of truth 310. Conflicts between the third set of network configuration data and the source of truth 310 are flagged and/or removed from the source of truth 310.
- the source of truth 310 is updated based on the network configuration change request.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
The present disclosure provides a computer-implemented method for discovering a configuration of a network, the network having a plurality of heterogeneous devices and a device hierarchy. The method includes steps of: discovering, using a link layer protocol, a first set of network configuration data including at least, in relation to the respective device, a first firmware information, a first device identity information, and a first device configuration information, wherein step of discovering (301) the first set of network configuration data includes sequential steps of: (a) identifying an identity of a home device by a behavior of the home device in response to SSH commands and/or a packet-layer specific behavior of the home device; (b) gathering information about the home device using a set of device-specific link layer protocol commands using a translation library that translates generic commands to the device-specific commands; (c) identifying a neighboring device of the home device by polling active network connections; and (d) repeating steps (a)-(c) treating the neighboring device as the home device.
Description
- This invention relates to a network configuration management system.
- Networks are incredibly complex physical and digital architectures. In virtually any building of sufficient size, such as hospitals, shopping malls, hotels, or large office buildings, the network complexity and frequency of changes to the network mandate the near full-time attention of expensive professionals to ensure that the network remains sufficiently operational. Networks may include a large number of devices with a vast variety of identities, manufacturing years, origins of manufacture, and capabilities.
- Additional complexity is introduced by the application of networking standards by the owners, or franchise owners, of such buildings, as well as the application of networking standards recommended or imposed by original equipment manufacturers, as well as the network operations center (NOC) that is administering the network. As a result, the simple tasks of adding devices to the network, removing devices from the network, firmware upgrades, or physical movement of devices within the network, can become cumbersome manual labour, without which the network would quickly become non-operational, or non-compliant with relevant standards.
- It would be desirable to be able to manage a network configuration change centrally and automatically, taking into account the specifics of the network being updated, the relevant standards being applied, as well as the physical characteristics of the network.
- It is an object of the present invention to at least substantially address one or more of the above disadvantages, or at least provide a useful alternative to the above methods of changing a configuration of a network.
- The present disclosure provides a computer-implemented method for discovering a configuration of a network, the network having a plurality of heterogenous devices and a device hierarchy, the method including the steps of:
- discovering, using a link layer protocol, a first set of network configuration data including at least, in relation to the respective device, a first firmware information, a first device identity information, and a first device configuration information,
- wherein the step of discovering the first set of network configuration data includes the sequential steps of:
- (a) identifying an identity of a home device by a behavior of the home device in response to secure shell protocol (SSH) commands and/or a packet-layer specific behavior of the home device;
- (b) gathering information about the home device using a set of device-specific link layer protocol commands using a translation library that translates generic commands to the device-specific commands;
- (c) identifying a neighboring device of the home device by polling active network connections; and
- (d) repeating steps (a)-(c) treating the neighboring device as the home device.
- Preferably, the method further includes the steps of:
- creating, using the first set of network configuration data, a network configuration source of truth, the source of truth containing, in relation to each device, a firmware truth, a device identity truth, a device configuration truth, and a device hierarchy truth;
- receiving a second network configuration standard;
- creating a network configuration change request by comparing the source of truth to the second network configuration standard, such that, after application of the network configuration change request, the source of truth is compliant with the second network configuration standard.
- Preferably, the method further includes, when used for changing a configuration of a network, the steps of:
- creating, using the first set of network configuration data, a network configuration source of truth, the source of truth containing, in relation to each device, a firmware truth, a device identity truth, a device configuration truth, and a device hierarchy truth;
- receiving a network configuration change request relating to one or more devices in the network;
- determining a device configuration plan based on the network configuration change request, the device configuration truth, and the device identity truth, the device configuration plan including an updated device configuration information for each device affected by the network configuration change request;
- determining an orchestration plan based on the network configuration change request, the device identity truth, and the device hierarchy truth, the orchestration plan including an order of devices affected by the network configuration change request; and
- applying the updated device configuration information to each device affected by the network configuration change request in the order of the orchestration plan.
- Preferably, the method further includes the step of:
- receiving a second set of network configuration data, the second set of network configuration data including, in relation to the respective device, one or more of a physical location information, a physical connectivity information, a second firmware information, and a second device identity information,
- wherein the step of creating the network configuration source of truth includes comparing the first set of network configuration data to the second set of network configuration data and excluding conflicting data from the source of truth, and adding a physical location truth and a physical connectivity truth to the source of truth, based on the second set of network configuration data.
- Preferably, the method further includes the step of:
creating, using the first set of network configuration data, a site survey plan for obtaining the second set of network configuration data, the site survey plan including device identity information and physical location information that is derivable from the first set of network configuration data. - Preferably, the method further includes the steps of:
- receiving a network update definition, the network update definition including a new device identity information and a new identity device configuration information of devices to be added to the network, as well as a device removal information of devices to be removed from the network;
- determining a bill of materials containing devices to be installed to fulfill the network update definition, based on the network update definition and the source of truth;
- creating a network change request by comparing the network update definition to the source of truth.
- Preferably, the method further includes the steps of:
- receiving a confirmation that the devices to be installed to fulfill the network update definition have been installed;
- discovering, using a link layer protocol, a third set of network configuration data including at least, in relation to the respective device, a third firmware information, a third device identity information, and a third device configuration information;
- comparing the third set of network configuration data to the source of truth to:
- update the source of truth with the third set of network configuration data, if the third set of network configuration data is consistent with the network update definition; and
- remove conflicts from the source of truth.
- Preferably, the method further includes the steps of:
- determining a device firmware plan based on the network configuration change request, the device firmware truth, and the device identity truth, the device firmware plan including updated firmware information for one or more devices affected by the network change request; and
- applying the updated firmware information to the one or more devices affected by the network change request in the order of the orchestration plan.
- Preferably, the method further includes the step of:
providing the device firmware plan and the orchestration plan to an operator for approval. - Preferably, the method further includes the step of:
updating the source of truth based on the network configuration change request. - Preferably, the method further includes the steps of:
- receiving a second network configuration standard;
- creating a network configuration change request by comparing the source of truth to the second network configuration standard such that, after application of the network configuration change request, the source of truth is compliant with the second network configuration standard.
- Preferably, the method further includes the steps of:
- receiving a NOC network configuration standard;
- before applying the network configuration change request, modifying the network configuration change request by comparing the network configuration change request to the NOC network configuration standard, such that, after application of the network configuration change request, the source of truth is compliant with the NOC network configuration standard.
- Preferably, the method further includes the steps of:
- receiving a second network configuration standard;
- creating a network configuration change request by comparing the source of truth to the second network configuration standard such that, after application of the network configuration change request the source of truth is compliant with the second network configuration standard.
- Preferably, the method further includes the step of:
- after a time interval, discovering, using a link layer protocol, a third set of network configuration data including at least, in relation to the respective device, a third firmware information, a third device identity information, and a third device configuration information;
- comparing the third set of network configuration data to the source of truth and removing conflicts from the source of truth.
- Preferably, the method further includes the step of:
providing the device configuration plan and the orchestration plan to an operator for approval. - The present disclosure also provides a non-transient computer-readable medium containing executable instructions for configuring a processor of a processing system to change a configuration of a network,
wherein execution of the executable instructions by the processor configures the processor to perform the steps of the method of the disclosed method. - The present disclosure also provides one or more servers performing the disclosed method.
- The present disclosure also provides a system for managing the configuration of a network, the system including:
- an electronic device; and
- the one or more disclosed servers.
- Preferred embodiments of the present invention will now be described by way of example, with reference to the accompanying drawings, wherein:
-
FIGS. 1A and1B show a general-purpose computer system 100, upon which a preferred embodiment of the method according to the present invention is implemented. -
FIGS. 2A and2B show anembedded device 201, upon which at least some portions of the preferred embodiment of the method according to the present invention is implemented. -
FIG. 3 is a flowchart showing a method for configuration of a network according to a preferred embodiment of the invention. -
FIG. 4 is an example of a network that may be configured using the method ofFIG. 3 . -
FIG. 5 is a further flowchart of the method ofFIG. 3 , showing receipt of physical location information. -
FIG. 6 is a further flowchart of the method ofFIG. 3 , showing receipt of a network update definition. -
FIG. 7 is a further flowchart of the method ofFIG. 3 , showing the update of the source of truth based on receipt of a confirmation that the devices have been installed. -
FIG. 8 is a further flowchart of the method ofFIG. 3 , showing the determination of a device firmware plan. -
FIG. 9 is a further flowchart of the method ofFIG. 3 , showing receipt of a NOC network configuration standard. -
FIG. 10 is a further flowchart of the method ofFIG. 3 showing receipt of a second network configuration standard. -
FIG. 11 is a further flowchart of the method ofFIG. 3 showing discovery of a third set of network configuration data. -
FIG. 12 is an example of a site survey plan. -
FIG. 13 is an example of a bill of materials. -
FIG. 14 is an example of a device firmware plan or a device configuration plan. -
FIG. 15 is an example of an orchestration plan. -
FIG. 16 is an example of a NOC network configuration standard or a second network configuration standard. -
FIGS. 1A and1B depict a general-purpose computer system 100, upon which the various arrangements described can be practiced. - As seen in
FIG. 1A , thecomputer system 100 includes: acomputer module 101; input devices such as akeyboard 102, amouse pointer device 103, ascanner 126, acamera 127, and amicrophone 180; and output devices including aprinter 115, adisplay device 114 andloudspeakers 117. An external Modulator-Demodulator (Modem)transceiver device 116 may be used by thecomputer module 101 for communicating to and from acommunications network 120 via aconnection 121. Thecommunications network 120 may be a wide-area network (WAN), such as the Internet, a cellular telecommunications network, or a private WAN. Where theconnection 121 is a telephone line, themodem 116 may be a traditional "dial-up" modem. Alternatively, where theconnection 121 is a high capacity (e.g., cable) connection, themodem 116 may be a broadband modem. A wireless modem may also be used for wireless connection to thecommunications network 120. - The
computer module 101 typically includes at least oneprocessor unit 105, and amemory unit 106. For example, thememory unit 106 may have semiconductor random access memory (RAM) and semiconductor read only memory (ROM). Thecomputer module 101 also includes a number of input/output (I/0) interfaces including: an audio-video interface 107 that couples to thevideo display 114,loudspeakers 117 andmicrophone 180; an 1/0interface 113 that couples to thekeyboard 102,mouse 103,scanner 126,camera 127 and optionally a joystick or other human interface device (not illustrated), or a projector; and an interface 108 for theexternal modem 116 andprinter 115. In some implementations, themodem 116 may be incorporated within thecomputer module 101, for example within the interface 108. Thecomputer module 101 also has alocal network interface 111, which permits coupling of thecomputer system 100 via aconnection 123 to a local-area communications network 122, known as a Local Area Network (LAN). As illustrated inFig. 1A , thelocal communications network 122 may also couple to thewide network 120 via a connection 124, which would typically include a so-called "firewall" device or device of similar functionality. Thelocal network interface 111 may comprise an Ethernet circuit card, a Bluetooth® wireless arrangement or an IEEE 802.11 wireless arrangement; however, numerous other types of interfaces may be practiced for theinterface 111. - The 1/0
interfaces 108 and 113 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards and having corresponding USB connectors (not illustrated).Storage devices 109 are provided and typically include a hard disk drive (HDD) 110. Other storage devices such as a floppy disk drive and a magnetic tape drive (not illustrated) may also be used. Anoptical disk drive 112 is typically provided to act as a non-volatile source of data. Portable memory devices, such optical disks (e.g., CD-ROM, DVD, Blu-ray™ Disc), USB-RAM, portable, external hard drives, and floppy disks, for example, may be used as appropriate sources of data to thesystem 100. - The
components 105 to 113 of thecomputer module 101 typically communicate via an interconnected bus I 04 and in a manner that results in a conventional mode of operation of thecomputer system 100 known to those in the relevant art. For example, theprocessor 105 is coupled to thesystem bus 104 using aconnection 118. Likewise, thememory 106 andoptical disk drive 112 are coupled to thesystem bus 104 byconnections 119. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun SPARCstations, Apple Mac™ or a like computer system. - The methods as described herein may be implemented using the
computer system 100 wherein the processes ofFIGS. 3 to 15 , to be described, may be implemented as one or moresoftware application programs 133 executable within thecomputer system 100. In particular, the steps of the methods described herein are effected by instructions 131 (seeFIG. 1B ) in thesoftware 133 that are carried out within thecomputer system 100. Thesoftware instructions 131 may be formed as one or more code modules, each for performing one or more particular tasks. - The software may be stored in a non-transient computer readable medium, including the storage devices described below, for example. The software is loaded into the
computer system 100 from the computer readable medium, and then executed by thecomputer system 100. A computer readable medium having such software or computer program recorded on the computer readable medium is a computer program product. The use of the computer program product in thecomputer system 100 preferably affects an advantageous apparatus for detecting and/or sharing writing actions. - The
software 133 is typically stored in theHDD 110 or thememory 106. The software is loaded into thecomputer system 100 from a computer readable medium, and executed by thecomputer system 100. Thus, for example, thesoftware 133 may be stored on an optically readable disk storage medium (e.g., CD-ROM) 125 that is read by theoptical disk drive 112. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in thecomputer system 100 preferably affects the computer-implemented method for extracting content from a physical writing surface. - In some instances, the
application programs 133 may be supplied to the user encoded on one or more CD-ROMs 125 and read via thecorresponding drive 112, or alternatively may be read by the user from thenetworks computer system 100 from other computer readable media. Computer readable storage media refers to any non-transitory tangible storage medium that provides recorded instructions and/or data to thecomputer system 100 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, DVD, Blu-ray™ Disc, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, or a computer readable card such as a Personal Computer Memory Card International Association (PCMCIA) card and the like, whether or not such devices are internal or external of thecomputer module 101. Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to thecomputer module 101 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like. - The second part of the
application programs 133 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon thedisplay 114. Through manipulation of typically thekeyboard 102 and themouse 103, a user of thecomputer system 100 and the application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via theloudspeakers 117 and user voice commands input via themicrophone 180. -
FIG. 1B is a detailed schematic block diagram of theprocessor 105 and a "memory" 134. Thememory 134 represents a logical aggregation of all the memory modules (including theHDD 109 and semiconductor memory 106) that can be accessed by thecomputer module 101 inFIG. 1A . - When the
computer module 101 is initially powered up, a power-on self-test (POST)program 150 executes. ThePOST program 150 is typically stored in aROM 149 of thesemiconductor memory 106 ofFig. 1A . A hardware device such as theROM 149 storing software is sometimes referred to as firmware. ThePOST program 150 examines hardware within thecomputer module 101 to ensure proper functioning and typically checks theprocessor 105, the memory 134 (109, 106), and a basic input-output systems software (BIOS)module 151, also typically stored in theROM 149, for correct operation. Once thePOST program 150 has run successfully, theBIOS 151 activates thehard disk drive 110 ofFIG. 1A Activation of thehard disk drive 110 causes abootstrap loader program 152 that is resident on thehard disk drive 110 to execute via theprocessor 105. This loads anoperating system 153 into theRAM memory 106, upon which theoperating system 153 commences operation. Theoperating system 153 is a system level application, executable by theprocessor 105, to fulfil various high-level functions, including processor management, memory management, device management, storage management, software application interface, and generic user interface. It is now common for multiple independent operating systems to be hosted on thesame processor 105 using so-called virtualization applications. - The
operating system 153 manages the memory 134 (109, 106) to ensure that each process or application running on thecomputer module 101 has sufficient memory in which to execute without colliding with memory allocated to another process. Furthermore, the different types of memory available in thesystem 100 ofFIG. 1A must be used properly so that each process can run effectively. Accordingly, the aggregatedmemory 134 is not intended to illustrate how particular segments of memory are allocated (unless otherwise stated), but rather to provide a general view of the memory accessible by thecomputer system 100 and how such is used. - As shown in
FIG. 1B , theprocessor 105 includes a number of functional modules including acontrol unit 139, an arithmetic logic unit (ALU) 140, and a local orinternal memory 148, sometimes called a cache memory. Thecache memory 148 typically includes a number of storage registers 144 - 146 in a register section. One or moreinternal busses 141 functionally interconnect these functional modules. The processor I 05 typically also has one ormore interfaces 142 for communicating with external devices via thesystem bus 104, using aconnection 118. Thememory 134 is coupled to thebus 104 using aconnection 119. - The
application program 133 includes a sequence ofinstructions 131 that may include conditional branch and loop instructions. Theprogram 133 may also includedata 132 which is used in execution of theprogram 133. Theinstructions 131 and thedata 132 are stored inmemory locations instructions 131 and the memory locations 128-130, a particular instruction may be stored in a single memory location as depicted by the instruction shown in thememory location 130. Alternately, an instruction may be segmented into a number of parts, each of which is stored in a separate memory location, as depicted by the instruction segments shown in thememory locations - In general, the
processor 105 is given a set of instructions which are executed therein. The processor I 05 waits for a subsequent input, to which theprocessor 105 reacts to by executing another set of instructions. Each input may be provided from one or more of a number of sources, including data generated by one or more of theinput devices networks storage devices storage medium 125 inserted into the correspondingreader 112, all depicted inFIG. 1A The execution of a set of the instructions may in some cases result in output of data. Execution may also involve storing data or variables to thememory 134. - The disclosed writing detection and sharing arrangements use
input variables 154, which are stored in thememory 134 incorresponding memory locations output variables 161, which are stored in thememory 134 incorresponding memory locations Intermediate variables 158 may be stored inmemory locations - Referring to the
processor 105 ofFIG. 1B , theregisters control unit 139 work together to perform sequences of microoperations needed to perform "fetch, decode, and execute" cycles for every instruction in the instruction set making up theprogram 133. Each fetch, decode, and execute cycle comprises: - a fetch operation, which fetches or reads an
instruction 131 from amemory location - a decode operation in which the
control unit 139 determines which instruction has been fetched; and - an execute operation in which the
control unit 139 and/or theALU 140 execute the instruction. - Thereafter, a further fetch, decode, and execute cycle for the next instruction may be executed. Similarly, a store cycle may be performed by which the
control unit 139 stores or writes a value to amemory location 162. - Each step or sub-process in the processes of
FIGS. 3 to 15 is associated with one or more segments of theprogram 133 and is performed by theregister section ALU 140, and thecontrol unit 139 in theprocessor 105 working together to perform the fetch, decode, and execute cycles for every instruction in the instruction set for the noted segments of theprogram 133. - The methods described herein may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the writing detection and sharing methods. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
-
FIGS. 2A and2B collectively form a schematic block diagram of a general-purposeelectronic device 201 including embedded components, upon which the writing detection and/or sharing methods to be described are desirably practiced. Theelectronic device 201 may be, for example, a mobile phone, a portable media player, virtual reality glasses, augmented reality glasses, or a digital camera, in which processing resources may be limited. Nevertheless, the methods to be described may also be performed on higher-level devices such as desktop computers, server computers, and other such devices with significantly larger processing resources. - As seen in
FIG. 2A , theelectronic device 201 comprises an embeddedcontroller 202. Accordingly, theelectronic device 201 may be referred to as an "embedded device." In the present example, thecontroller 202 has a processing unit (or processor) 205 which is bidirectionally coupled to aninternal storage module 209. Thestorage module 209 may be formed from non-volatile semiconductor read only memory (ROM) 260 and semiconductor random access memory (RAM) 270, as seen inFIG. 2B . TheRAM 270 may be volatile, non-volatile or a combination of volatile and non-volatile memory. - The
electronic device 201 includes adisplay controller 207, which is connected to adisplay 214, such as a liquid crystal display (LCD) panel or the like. Thedisplay controller 207 is configured for displaying graphical images on thedisplay 214 in accordance with instructions received from the embeddedcontroller 202, to which thedisplay controller 207 is connected. - The
electronic device 201 also includes user input devices 213 which are typically formed by keys, a keypad or like controls. In some implementations, the user input devices 213 may include a touch sensitive panel physically associated with thedisplay 214 to collectively form a touch-screen. Such a touch-screen may thus operate as one form of graphical user interface (GUI) as opposed to a prompt or menu driven GUI typically used with keypad-display combinations. Other forms of user input devices may also be used, such as a microphone (not illustrated) for voice commands or a j oystick/thumb wheel (not illustrated) for ease of navigation about menus. - As seen in
FIG. 2A , theelectronic device 201 also comprises aportable memory interface 206, which is coupled to theprocessor 205 via aconnection 219. Theportable memory interface 206 allows a complementaryportable memory device 225 to be coupled to theelectronic device 201 to act as a source or destination of data or to supplement theinternal storage module 209. Examples of such interfaces permit coupling with portable memory devices such as USB memory devices, Secure Digital (SD) cards, PCMIA cards, optical disks and magnetic disks. - The
electronic device 201 also has acommunications interface 208 to permit coupling of thedevice 201 to a computer or communications network 220 via aconnection 221. Theconnection 221 may be wired or wireless. For example, theconnection 221 may be radio frequency or optical. An example of a wired connection includes Ethernet. Further, an example of wireless connection includes Bluetooth™ type local interconnection, Wi-Fi (including protocols based on the standards of the IEEE 802.11 family), Infrared Data Association (IrDa) and the like. - Typically, the
electronic device 201 is configured to perform some special function. The embeddedcontroller 202, possibly in conjunction with furtherspecial function components 210, is provided to perform that special function. For example, where thedevice 201 is a digital camera, thecomponents 210 may represent a lens, focus control and image sensor of the camera. Thespecial function component 210 is connected to the embeddedcontroller 202. As another example, thedevice 201 may be a mobile telephone handset. In this instance, thecomponents 210 may represent those components required for communications in a cellular telephone environment. Where thedevice 201 is a portable device, thespecial function components 210 may represent a number of encoders and decoders of a type including Joint Photographic Experts Group (JPEG), (Moving Picture Experts Group) MPEG, MPEG-1 Audio Layer 3 (MP3), and the like. - The methods described hereinafter may be implemented using the embedded
controller 202, where the processes ofFIGS. 3 to 12 may be implemented as one or moresoftware application programs 233 executable within the embeddedcontroller 202. Theelectronic device 201 ofFIG. 2A implements the described methods. In particular, with reference toFIG. 2B , the steps of the described methods are effected by instructions in thesoftware 233 that are carried out within thecontroller 202. The software instructions may be formed as one or more code modules, each for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part and the corresponding code modules performs the described methods and a second part and the corresponding code modules manage a user interface between the first part and the user. - The
software 233 of the embeddedcontroller 202 is typically stored in thenon-volatile ROM 260 of theinternal storage module 209. Thesoftware 233 stored in theROM 260 can be updated when required from a computer readable medium. Thesoftware 233 can be loaded into and executed by theprocessor 205. In some instances, theprocessor 205 may execute software instructions that are located inRAM 270. Software instructions may be loaded into theRAM 270 by theprocessor 205 initiating a copy of one or more code modules fromROM 260 intoRAM 270. Alternatively, the software instructions of one or more code modules may be preinstalled in a non-volatile region ofRAM 270 by a manufacturer. After one or more code modules have been located inRAM 270, theprocessor 205 may execute software instructions of the one or more code modules. - The
application program 233 is typically pre-installed and stored in theROM 260 by a manufacturer, prior to distribution of theelectronic device 201. However, in some instances, theapplication programs 233 may be supplied to the user encoded on one or more CD-ROM (not shown) and read via theportable memory interface 206 ofFIG. 2A prior to storage in theinternal storage module 209 or in theportable memory 225. In another alternative, thesoftware application program 233 may be read by theprocessor 205 from the network 220, or loaded into thecontroller 202 or theportable storage medium 225 from other computer readable media. Computer readable storage media refers to any non-transitory tangible storage medium that participates in providing instructions and/or data to thecontroller 202 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, flash memory, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of thedevice 201. Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to thedevice 201 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like. A computer readable medium having such software or computer program recorded on it is a computer program product. - The second part of the
application programs 233 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon thedisplay 214 ofFIG. 2A . Through manipulation of the user input device 213 (e.g., the keypad), a user of thedevice 201 and theapplication programs 233 may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via loudspeakers (not illustrated) and user voice commands input via the microphone (not illustrated). -
FIG. 2B illustrates in detail the embeddedcontroller 202 having theprocessor 205 for executing theapplication programs 233 and theinternal storage 209. Theinternal storage 209 comprises read only memory (ROM) 260 and random access memory (RAM) 270. Theprocessor 205 is able to execute theapplication programs 233 stored in one or both of theconnected memories electronic device 201 is initially powered up, a system program resident in theROM 260 is executed. Theapplication program 233 permanently stored in theROM 260 is sometimes referred to as "firmware". Execution of the firmware by theprocessor 205 may fulfil various functions, including processor management, memory management, device management, storage management and user interface. - The
processor 205 typically includes a number of functional modules including a control unit (CU) 251, an arithmetic logic unit (ALU) 252, a digital signal processor (DSP) 253 and a local or internal memory comprising a set ofregisters 254 which typically containatomic data elements cache memory 255. One or moreinternal buses 259 interconnect these functional modules. Theprocessor 205 typically also has one ormore interfaces 258 for communicating with external devices via system bus 281, using aconnection 261. In some embodiments, theprocessor 205 may be a collection of FPGA processors, known as a "graphics card", in which case theconnection 261 is commonly a PCI-Express bus. - The
application program 233 includes a sequence ofinstructions 262 through 263 that may include conditional branch and loop instructions. Theprogram 233 may also include data, which is used in execution of theprogram 233. This data may be stored as part of the instruction or in aseparate location 264 within theROM 260 orRAM 270. - In general, the
processor 205 is given a set of instructions, which are executed therein. This set of instructions may be organised into blocks, which perform specific tasks or handle specific events that occur in theelectronic device 201. Typically, theapplication program 233 waits for events and subsequently executes the block of code associated with that event. Events may be triggered in response to input from a user, via the user input devices 213 ofFIG. 2A , as detected by theprocessor 205. Events may also be triggered in response to other sensors and interfaces in theelectronic device 201. - The execution of a set of the instructions may require numeric or non-numeric variables to be read and modified. Such numeric variables are stored in the
RAM 270. The disclosed method usesinput variables 271 that are stored in knownlocations memory 270. Theinput variables 271 are processed to produceoutput variables 277 that are stored in knownlocations memory 270.Intermediate variables 274 may be stored in additional memory locations inlocations memory 270. Alternatively, some intermediate variables may only exist in theregisters 254 of theprocessor 205. - The execution of a sequence of instructions is achieved in the
processor 205 by repeated application of a fetch-execute cycle. Thecontrol unit 251 of theprocessor 205 maintains a register called the program counter, which contains the address inROM 260 orRAM 270 of the next instruction to be executed. At the start of the fetch execute cycle, the contents of the memory address indexed by the program counter is loaded into thecontrol unit 251. The instruction thus loaded controls the subsequent operation of theprocessor 205, causing for example, data to be loaded fromROM memory 260 into processor registers 254, the contents of a register to be arithmetically combined with the contents of another register, the contents of a register to be written to the location stored in another register and so on. At the end of the fetch execute cycle the program counter is updated to point to the next instruction in the system program code. Depending on the instruction just executed this may involve incrementing the address contained in the program counter or loading the program counter with a new address in order to achieve a branch operation. - Each step or sub-process in the processes of the methods described below is associated with one or more segments of the
application program 233, and is performed by repeated execution of a fetch-execute cycle in theprocessor 205 or similar programmatic operation of other independent processor blocks in theelectronic device 201. -
FIG. 3 shows a flowchart of a computer-implemented method for changing a configuration of anetwork 120 according to a preferred embodiment of the invention. As shown inFIG. 4 , thenetwork 120 contains a plurality ofdevices network 120. Further, each device 302 is connected to thenetwork 120 in a hierarchy, as also shown inFIG. 4 . For example, a group ofdevices 302c may be connected to aswitch 302b, thus theswitch 302b is in a higher hierarchy level than the group ofdevices 302c. Similarly, a group ofswitches 302b may be connected to ahigher level switch 302a, thus theswitch 302a is in a yet higher hierarchy level than the group ofswitches 302b. - The method of
FIG. 3 commences, atstep 301, by discovering, using a link layer protocol, such as the link layer discovery protocol (LLDP), a first set of network configuration data. In one embodiment,step 301 includes being provided with a home device whose access credentials are known, and then obtaining information about the identity of the home device by accessing the home device using SSH. Libraries such as Napalm are able to identify the home device by the behaviour of the home device in response to certain SSH commands, as well as packet-layer specific behaviour of the home device. Once the home device has been identified, generic commands may be translated to device-specific LLDP commands using the Napalm library to gather more specific information about the home device. Once all relevant or desired information about the home device has been obtained, the neighbours of the home device are identified by polling active network connections and the process is repeated for each neighbouring device, until all devices on the network are identified. - The first set of network configuration data includes information in relation to each discovered device 302, for example, the first set of network configuration data may include a first firmware information relating to the firmware version and/or date of the device 302. The first set of network configuration data may also include a first device identity information, relating to one or more of a manufacturer, a model number, a MAC address, or a IMEI number of the device 302. The first set of network configuration data may further include a first device configuration information relating to one or more of a port configuration, a firewall configuration, a listing of connected devices, or any other type of configurable settings that may apply to the device 302.
- The method then proceeds, at
step 303, by creating, using the first set of network configuration data, a network configuration source of truth 310. The source of truth 310 includes a firmware truth, based on the first firmware information, a device identity truth, based on the first device identity information, a device configuration truth, based on the first device configuration information, and a device hierarchy truth that is determined based on the first device configuration information. - In a preferred embodiment, as shown in
FIG. 5 , the method also includes, atstep 315, receiving a second set of network configuration data. Preferably, the second set of network configuration data was obtained by conducting a physical site survey of thenetwork 120, that is, physically inspecting the identity and location of each device 302 connected to thenetwork 120. The second set of network configuration data preferably includes, in relation to each device 302, a physical location information related to a physical location of the device. The second set of network configuration data may also include a physical connectivity information relating to one or more of a port configuration of the device 302, an access restriction or capability of the device 302, such as capacity of cable trays and conduits. The second set of network configuration data may also include a second firmware information and a second device identity information that a similar in nature to the first firmware information and the first device identity information, but gathered from the physical site survey of thenetwork 120. - In the preferred embodiment shown in
FIG. 5 , the source of truth 310 is created instep 303b based on a combination of the first and second sets of network configuration data by comparing the first set of network configuration data to the second set of network configuration data, while flagging and excluding conflicting information between these data sets. The physical location information and physical connectivity information are added to the source of truth 310 as a physical location truth and a physical connectivity truth. - To assist the physical site survey used to produce the second set of network configuration data, the method may include step 313 of creating, based on the first set of network configuration data, a
site survey plan 320 for obtaining the second set of network configuration data. As shown inFIG. 12 , thesite survey plan 320 preferably includes hierarchicalphysical location information 351, for example information relating to a building, level in the building, room on the level, and location in the room of devices 302. Thesite survey plan 320 may also includedevice identity information 353 and physical location and/or connectivity information that is derivable from the first set of network configuration data, such as identity and number of ports, or identification numbers of the equipment, to be verified by the physical site survey. The physical location information may, for example, be derived from an estimate of the signal quality from known locations of devices 302 in thenetwork 120, as well as time of flight calculations of data transfer between the devices 302. - Now that the source of truth 310 has been created, it is possible to use the various truths in the source of truth 310 to plan and orchestrate changes to the configuration of the
network 120. As seen inFIG. 3 , the method processes such changes in configuration by, atstep 305, receiving a network configuration change request that may relate to one or more devices 302 in thenetwork 120. The network configuration change request may include details as to how the configuration of thenetwork 120 is to be altered, in terms of configuration, firmware, connection, and/or presence of each device 302. The method proceeds, atstep 307, by determining a device configuration plan 360 based on the network configuration change request, the device configuration truth, and the device identity truth. - The device configuration plan 360, as shown in
FIG. 14 , includes an updated device configuration information for each device 302 affected by the network configuration change request 350. The updated device configuration information is determined for each device 302 based on the device identity truth, since each device 302 may require different configuration information to have the desired effect, due to the heterogenous nature of the devices 302. To assist this project, the source of truth 310 includes a configuration library that allows translation of a generic configuration instruction, contained in the network configuration change request, to a specific configuration instruction adapted to affect the intent of the generic configuration instruction in the specific device 302. For example a set of generic instructions as shown below, may be translated to the device specific instructions shown thereafter. The configuration library is a collation of manufacturer-provided user instructions as to how each device 302 may be configured, that is linked to a generic instruction language for the type of network configurations typically performed by the method. - Generic instructions:
intent = { "meta": { "timestamp": 1644013452, "version": "1.0", }, "changes": { "10.0.3.253": { "vlans": { "create": { "102": "Room 102" }, "assign": { "tagged": "1/1/12" }, "remove": { "tagged": "1/1/11" } } } } }
Device-specific instruction set:
conf t vlan 102 description "Room 102" taggedethernet 1/1/12 no taggedethernet 1/1/11 end wr me logout
As shown in FIG. 3 , the method continues, with step 309, by determining an orchestration plan 370 based on the network configuration change request, the device identity truth, and the device hierarchy truth. As shown in FIG. 15 , the orchestration plan 370 includes an order of devices 302 affected by the network configuration change request 350. Configuration changes to networks 120 should be carried out in a specific order to avoid a configuration change to a node device, for example a switch, leading to a loss of communication with devices connected to the switch as a result of the configuration change to the switch. To avoid these situations, the orchestration plan 370 specifies the order 372 in which the device configuration plan 360 should be applied. The orchestration plan 370 is determined based on the hierarchy truth, as well as a hierarchy library, such as a look-up table, that allows, using the generic configuration instructions, the identification of changes to device configuration truths that can be conducted in parallel, and the identification of changes to device configuration truths that must be conducted sequentially, either top-down, or bottom-up. In the example shown in FIG. 15 , devices 302 in the arm 365 must be configured before device 302 at position 367 may be configured. The steps of the orchestration plan 370 are recited in the device configuration plan 360, as shown in FIG. 14 .
Finally, at step 311, the method applies the updated device configuration information to each device 302 affected by the network configuration change request 350 in the order 372 of the orchestration plan 370.
The method may be used for a variety of situations, for example as shown in FIG. 6 , new devices 302 may be desired to be added to the network 120. To assist this process, at step 317, a network update definition 330 is created that includes a new device identity information and a new device configuration information relating to devices 302 to be added to the network 120. The network update definition 330 may also include a new device physical location information, relating to a location in which the device 302 is to be added, and a new device physical connectivity information, similar in nature to the physical connectivity information. The network update definition 330 may also, or instead, include a device removal information of devices 302 that are to be removed from the network 120. At step 319, a bill of materials 340 is determined, based on the network update definition 330 and the source of truth 310. As shown in FIG. 13 , the bill of materials 340 extends beyond the devices 302 to be added, and also includes devices 302 that may be required to allow connection of the devices 302 to be added to the network 120, based on the present capabilities of the network 120, as evident from the source of truth 310. The bill of materials 340 may further include materiel that is required to physically connect the devices 302 to be added to the network 120, based on the physical location and physical connectivity truths and the network update definition 330.
Returning to FIG. 6 , the method continues, at step 321, by creating a network configuration change request 350 by comparing the network update definition 330 to the source of truth 310. The network configuration change request 350 may then be processed as discussed above.
To monitor installation of the devices 302 to be added to the network 120, the method may, as shown in FIG. 7 include step 323 of receiving a confirmation that the devices 302 to be installed to fulfill the network update definition 330 have been installed. The method then continues at step 325 by discovering, using the link layer protocol, a third set of network configuration data that is substantially similar to the first set of network configuration data, but contains information relating to the devices 302 that have been installed. The third set of network configuration data is compared, at step 327, to the source of truth 310 to update the source of truth 310 with the third set of network configuration data, if the third set of network configuration data is consistent with the network update definition. The method also removes and/or flags conflicts of the third set of network configuration data from the source of truth 310, such that information relating to devices that have been removed from, or moved within, the network 120 is updated.
As the devices 302 on the network 120 may occasionally require updates of their firmware, the network configuration change request may relate to a change in firmware instead of, or in addition to, a change in device configuration. As shown in FIG. 8 , the method may thus also include step 329 of determining a device firmware plan 380 based on the network configuration change request 350, the device identity truth, and the device firmware truth. The device firmware plan 380 includes updated firmware information for one or more device affected by the network configuration change request 350. The updated firmware information may include information relating to the new firmware version number and/or date, a flashable copy of the new firmware, and/or instructions to flash the new firmware onto the device 302 from a local or remote source. The method then continues with step 333 by applying the firmware plan, including the updated firmware information, to the one or more devices affected by the network configuration change request 350 in the order 372 of the orchestration plan 370. As before the source of truth is updated based on the network configuration change request, at step 335.
In an optional step 331, the device firmware plan 380 and the orchestration plan 370 are produced to an operator for approval of the plans 370, 380 before execution of the plans.
In a preferred embodiment shown in FIG. 9 , the method also includes step 337 of receiving an NOC network configuration standard 390. As shown in FIG. 16 , the NOC network configuration standard 390 includes information relating to allowable firmware versions 369, allowed ciphers 371 that may be used on the network 120, and preferred network configuration settings 373. Preferably, the NOC network configuration standard 390 is formatted in terms of the generic, device-agnostic, configuration instruction language, so that the standard can be applied across the heterogenous devices 302 of the network 120. To implement the NOC standard 390, the method proceeds with step 339 of creating a network configuration change request by comparing the source of truth 310 to the NOC standard 390. The NOC standard 390 may be translated to device-specific configuration instruction language using the aforementioned library, to allow comparison against the source of truth 310.
The resulting network configuration change request includes a device configuration plan 360 and/or a device firmware plan 380 such that, after application of the network configuration change request as previously discussed, the source of truth 310 is compliant with the NOC network configuration standard 390.
In another preferred embodiment shown in FIG. 10 , the method also includes step 341 of receiving a second network configuration standard. The second network configuration standard 400 includes similar information to the NOC network configuration standard 390. Typically the NOC network configuration standard is issued by device manufacturers, while the second network configuration standard may be a standard applied by an owner of the network 120, or be an obligation the owner of the network 120 has, such as a franchise agreement. A common industry term is "brand standard", as is commonly applied in, for example, hotels so that a user experience of the network 120 is substantially similar between different locations of the same brand. Preferably, the second network configuration standard 400 is formatted in terms of the generic, device-agnostic, configuration instruction language. To implement the second standard 400, the method may proceed with step 345 of creating a network configuration change request by comparing the source of truth 310 to the second standard 400. The second standard 400 may be translated to device-specific configuration instruction language using the aforementioned library, to allow comparison against the source of truth 310.
The resulting network configuration change request 350 includes a device configuration plan 360 and/or a device firmware plan 380 such that, after application of the network configuration change request 350, the source of truth 310 is compliant with the second network configuration standard 400.
The NOC and second standards 390, 400 may also be applied to a network configuration change request 350 that was created in a different portion of the present method. In this instance, the network configuration change request is, at step 343, compared to the NOC and second standards 390, 400 to alter, add, and/or delete portions of the device configuration plan 360 and/or the device firmware plan 380 such that, after application of the network configuration change request 350, the source of truth 310 is compliant with the standards 390, 400.
In another preferred embodiment shown in FIG. 11 , periodically, after a time interval, for example after 24h, 7 days, 1 month, 3 months, 6 months, or 1 year, the method includes step 347 of discovering, using the link layer protocol, the third set of network configuration data and, at step 349, comparing the third set of network configuration data to the source of truth 310. Conflicts between the third set of network configuration data and the source of truth 310 are flagged and/or removed from the source of truth 310.
Following processing of the network configuration change request, the source of truth 310 is updated based on the network configuration change request.
Claims (15)
- A computer-implemented method for discovering a configuration of a network (120), the network having a plurality of heterogeneous devices (302) and a device hierarchy, the method comprising steps of:discovering (301), using a link layer protocol, a first set of network configuration data including at least, in relation to the respective device, a first firmware information, a first device identity information, and a first device configuration information,wherein the step of discovering (301) the first set of network configuration data comprises sequential steps of:(a) identifying an identity of a home device by a behavior of the home device in response to secure shell protocol, SSH, commands and/or a packet-layer specific behavior of the home device;(b) gathering information about the home device using a set of device-specific link layer protocol commands using a translation library that translates generic commands to the device-specific commands;(c) identifying a neighboring device of the home device by polling active network connections; and(d) repeating steps (a)-(c) treating the neighboring device as the home device.
- The method of claim 1, further comprising steps of:creating, using the first set of network configuration data, a network configuration source of truth, the source of truth containing, in relation to each device, a firmware truth, a device identity truth, a device configuration truth, and a device hierarchy truth;receiving (341) a second network configuration standard (400);creating (345) a network configuration change request by comparing the source of truth to the second network configuration standard (400), such that, after application of the network configuration change request, the source of truth is compliant with the second network configuration standard (400).
- The method of claim 1 or 2, used for changing a configuration of a network, wherein the method further comprises steps of:creating (303), using the first set of network configuration data, a network configuration source of truth, the source of truth containing, in relation to each device, a firmware truth, a device identity truth, a device configuration truth, and a device hierarchy truth;receiving (305) a network configuration change request relating to one or more devices (302) in the network (120);determining (307) a device configuration plan (360) based on the network configuration change request, the device configuration truth, and the device identity truth, the device configuration plan (360) including an updated device configuration information for each device affected by the network configuration change request;determining (309) an orchestration plan (370) based on the network configuration change request, the device identity truth, and the device hierarchy truth, the orchestration plan including an order of devices affected by the network configuration change request; andapplying (311) the updated device configuration information to each device (302) affected by the network configuration change request in the order of the orchestration plan (370).
- The method of claim 3, further comprising a step of:receiving (315) a second set of network configuration data, the second set of network configuration data including, in relation to the respective device, one or more of a physical location information, a physical connectivity information, a second firmware information, and a second device identity information,wherein the step of creating the network configuration source of truth includes comparing (303b) the first set of network configuration data to the second set of network configuration data and excluding conflicting data from the source of truth, and adding a physical location truth and a physical connectivity truth to the source of truth, based on the second set of network configuration data, and optionally:
creating (313), using the first set of network configuration data, a site survey plan (320) for obtaining the second set of network configuration data, the site survey plan (320) including device identity information (353) and physical location information that is derivable from the first set of network configuration data. - The method of claim 4, further comprising steps of:receiving (317) a network update definition, the network update definition including a new device identity information and a new identity device configuration information of devices to be added to the network, as well as a device removal information of devices to be removed from the network;determining (319) a bill of materials containing devices to be installed to fulfill the network update definition, based on the network update definition and the source of truth;creating (321) a network change request by comparing the network update definition to the source of truth.
- The method of claim 5, further comprising steps of:receiving (323) a confirmation that the devices to be installed to fulfill the network update definition have been installed;discovering (325), using a link layer protocol, a third set of network configuration data including at least, in relation to the respective device, a third firmware information, a third device identity information, and a third device configuration information;comparing (327) the third set of network configuration data to the source of truth to:update the source of truth with the third set of network configuration data, if the third set of network configuration data is consistent with the network update definition; andremove conflicts from the source of truth.
- The method of any one of claims 3 to 6, further comprising steps of:determining (329) a device firmware plan based on the network configuration change request, the device firmware truth, and the device identity truth, the device firmware plan including updated firmware information for one or more devices affected by the network change request; andapplying (333) the updated firmware information to the one or more devices affected by the network change request in the order of the orchestration plan, and optionally:
providing (331) the device firmware plan and the orchestration plan to an operator for approval. - The method of any one of claims 3 to 7, further comprising a step of:
updating (335) the source of truth based on the network configuration change request. - The method of any one of claims 3 to 8, further comprising steps of:receiving (341) a second network configuration standard;creating (345) a network configuration change request by comparing the source of truth to the second network configuration standard such that, after application of the network configuration change request, the source of truth is compliant with the second network configuration standard.
- The method of claim 9, further comprising steps of:receiving (341) a network operations center, NOC, network configuration standard;before applying the network configuration change request, modifying (343) the network configuration change request by comparing the network configuration change request to the NOC network configuration standard, such that, after application of the network configuration change request, the source of truth is compliant with the NOC network configuration standard.
- The method of any one of claims 3 to 10, further comprising a step of:after a time interval, discovering (347), using a link layer protocol, a third set of network configuration data including at least, in relation to the respective device, a third firmware information, a third device identity information, and a third device configuration information;comparing (349) the third set of network configuration data to the source of truth and removing conflicts from the source of truth.
- The method of any one of claims 3 to 11, further comprising a step of:
providing the device configuration plan and the orchestration plan to an operator for approval. - A non-transient computer-readable medium containing executable instructions for configuring a processor of a processing system to change a configuration of a network,
wherein execution of the executable instructions by the processor configures the processor to perform the steps of the method of any one of claims 1 to 12. - One or more servers performing the method of any one of claims 1 to 13.
- A system for managing the configuration of a network, the system including:an electronic device; andthe one or more servers of claim 14.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2022901013A AU2022901013A0 (en) | 2022-04-14 | Network configuration management system |
Publications (1)
Publication Number | Publication Date |
---|---|
EP4262168A1 true EP4262168A1 (en) | 2023-10-18 |
Family
ID=86052263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP23168068.7A Pending EP4262168A1 (en) | 2022-04-14 | 2023-04-14 | Network configuration management system |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230396505A1 (en) |
EP (1) | EP4262168A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120226791A1 (en) * | 2011-03-03 | 2012-09-06 | Krishnan Ramaswamy | Method and apparatus to detect unidentified inventory |
US20200044940A1 (en) * | 2018-08-03 | 2020-02-06 | Red Hat, Inc. | Targeted network discovery and visualizations |
US20210135934A1 (en) * | 2019-10-31 | 2021-05-06 | Juniper Networks, Inc. | Bulk discovery of devices behind a network address translation device |
-
2023
- 2023-04-14 US US18/134,877 patent/US20230396505A1/en active Pending
- 2023-04-14 EP EP23168068.7A patent/EP4262168A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120226791A1 (en) * | 2011-03-03 | 2012-09-06 | Krishnan Ramaswamy | Method and apparatus to detect unidentified inventory |
US20200044940A1 (en) * | 2018-08-03 | 2020-02-06 | Red Hat, Inc. | Targeted network discovery and visualizations |
US20210135934A1 (en) * | 2019-10-31 | 2021-05-06 | Juniper Networks, Inc. | Bulk discovery of devices behind a network address translation device |
Also Published As
Publication number | Publication date |
---|---|
US20230396505A1 (en) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100275135A1 (en) | Intuitive data transfer between connected devices | |
US20090222809A1 (en) | Portable device upgrade via a content transfer protocol | |
WO2015031546A1 (en) | Gesture-based content sharing between devices | |
AU2007237356A1 (en) | Animated user interface control elements | |
US20150312275A1 (en) | Single-step custom configuration of a cloud client device | |
US20130055135A1 (en) | Intelligent device framework | |
CN104281478A (en) | Method and device for updating application programs | |
US20120262489A1 (en) | Relative and Absolute Screen Rotation Draft Agent | |
CN105338391A (en) | Intelligent television control method and mobile terminal | |
CN108702414A (en) | A kind of screen locking method and device | |
US10055813B2 (en) | Electronic device and operation method thereof | |
CN110515634A (en) | Method, computer system and the medium of firmware are updated by Distal tool program | |
CN112166429A (en) | System and method with reduced complexity in integration of exposed information models with applications | |
WO2022156598A1 (en) | Bluetooth connection method and apparatus, and electronic device | |
CN106066792A (en) | A kind of software wireless remote debugging based on WiFi updates system and method | |
US20190205156A1 (en) | Container access method and apparatus | |
EP4262168A1 (en) | Network configuration management system | |
CN106649128A (en) | Method for automatically controlling running of terminal | |
WO2019071854A1 (en) | Display method for mobile apparatus, and mobile apparatus | |
CN107370623A (en) | A kind of method and device for realizing system installation | |
US20210294966A1 (en) | Systems and methods for binding lookup controls | |
CN112367295B (en) | Plug-in display method and device, storage medium and electronic equipment | |
US20090222602A1 (en) | Optimized data transfer between a portable device and a remote computer | |
CN112911359B (en) | Resource display method, display equipment and remote controller | |
CN111722880B (en) | Equipment production method and device, terminal equipment and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20230414 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |