Roll-back for configured target subset
By implementing flexible rollback of the configuration target subset on network devices, using hierarchical structure and extensible markup language attributes, the heavy problem of rollback of the entire configuration in the existing technology is solved, and the rollback efficiency and flexibility are improved. Reduced impact on the service.
Patent Information
- Application Number
- CN202311037835.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-08
- Filing Date
- 2023-08-17
- Publication Date
- 2024-12-10
AI Technical Summary
Existing network devices can only roll back the entire configuration when rolling back the configuration, which lacks flexibility for specific parts of the configuration, resulting in a heavy and time-consuming rollback process, affecting related services.
The network device obtains an indication of rollback on the configured target subset, and uses hierarchical structure and extensible markup language properties to perform rollback on the configured target subset to avoid rollbacks of non-target subsets.
Reduces rollback time and impact service volume, improves rollback flexibility and efficiency, especially in large-scale scenarios, which significantly reduces configuration load time and impact range.
Smart Images

Figure CN119109790A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate to the field of computers, and more particularly, to a method, medium, and device for performing rollback. Background Art
[0002] A network operating system (NOS) management plane infrastructure (e.g., on a network device) may include a candidate data store and an operational data store (e.g., an active configuration data store). The candidate data store includes configuration data that can be manipulated without affecting the current (e.g., active) configuration of the network device (e.g., a candidate configuration of the network device). The candidate configuration is a complete set of configuration data that serves as a workspace for creating and manipulating configuration data. A network administrator may make additions, deletions, and other changes to the configuration data to build the desired configuration data.
[0003] When the contents of the candidate configuration are complete, the configuration data may be "committed." A commit operation may be performed by the NOS and may involve publishing a data set to the rest of the network device so that the network device conforms to behavior according to the committed configuration. For example, upon a successful commit operation (which may be performed at any time), the values of the running configuration or data storage volume may be set to the values of the candidate configuration. Summary of the invention
[0004] Some embodiments described herein are directed to a method. The method may include submitting a configuration by a network device. The method may include obtaining, by the network device, an indication to perform a rollback on a target subset of the configuration. The method may include performing, by the network device, a rollback on the target subset of the configuration based at least in part on the indication.
[0005] Some embodiments described herein relate to a non-transitory computer-readable medium storing a set of instructions. The set of instructions includes one or more instructions that, when executed by one or more processors of a network device, may cause the network device to commit a configuration. The one or more instructions, when executed by one or more processors of the network device, may cause the network device to obtain an indication to perform a rollback on a target subset of the configuration. The one or more instructions, when executed by one or more processors of the network device, may cause the network device to perform a rollback of the target subset of the configuration based at least in part on the indication.
[0006] Some embodiments described herein relate to a network device. The network device may include one or more memories and one or more processors. The one or more processors may be configured to commit a configuration. The one or more processors may be configured to obtain an indication to perform a rollback on a target subset of the configuration. The one or more processors may be configured to perform a rollback on the target subset of the configuration based at least in part on the indication.
[0007] One aspect of the present disclosure provides a method, comprising: submitting a configuration by a network device; obtaining, by the network device, an indication to perform a rollback on a target subset of the configuration; and performing, by the network device, the rollback on the target subset of the configuration based at least in part on the indication.
[0008] According to one or more embodiments of the present disclosure, the method further includes: avoiding, by the network device, performing a rollback on a non-target subset of the configuration.
[0009] According to one or more embodiments of the present disclosure, performing the rollback includes: performing the rollback from the target subset of the configuration to a corresponding subset of another configuration.
[0010] According to one or more embodiments of the present disclosure, the configuration is arranged in a hierarchical structure.
[0011] According to one or more embodiments of the present disclosure, obtaining the indication includes: obtaining the indication based at least in part on a command provided from a top level of the hierarchical structure.
[0012] According to one or more embodiments of the present disclosure, obtaining the indication includes obtaining the indication based at least in part on a command provided from a level of the hierarchical structure associated with the target subset of the configuration.
[0013] According to one or more embodiments of the present disclosure, obtaining the indication includes: obtaining the indication based at least in part on an extensible markup language attribute.
[0014] Another aspect of the present disclosure provides a non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions, which, when executed by one or more processors of a network device, cause the network device to: commit a configuration; obtain an indication to perform a rollback for a target subset of the configuration; and perform the rollback for the target subset of the configuration based at least in part on the indication.
[0015] According to one or more embodiments of the present disclosure, the one or more instructions for causing the network device to perform the rollback cause the network device to: perform the rollback only on the target subset of the configuration based at least in part on the indication.
[0016] According to one or more embodiments of the present disclosure, the configuration is a first configuration, and the one or more instructions that cause the network device to perform the rollback cause the network device to: perform the rollback from the target subset of the first configuration to a corresponding subset of the second configuration submitted by the network device before submitting the first configuration.
[0017] According to one or more embodiments of the present disclosure, the configuration is a hierarchical configuration, and the one or more instructions that cause the network device to obtain the indication cause the network device to obtain the indication based at least in part on a command provided from a top level of the hierarchical configuration.
[0018] According to one or more embodiments of the present disclosure, the configuration is a hierarchical configuration, and the one or more instructions that cause the network device to obtain the indication cause the network device to: obtain the indication based at least in part on a command provided from a level of the hierarchical configuration associated with the target subset of the hierarchical configuration.
[0019] According to one or more embodiments of the present disclosure, the one or more instructions for causing the network device to obtain the indication cause the network device to obtain the indication based at least in part on an extensible markup language attribute.
[0020] Another aspect of the present disclosure provides a network device, comprising: one or more memories; and one or more processors, for: submitting a configuration; obtaining an indication to perform a rollback on a target subset of the configuration; and performing the rollback on the target subset of the configuration based at least in part on the indication.
[0021] According to one or more embodiments of the present disclosure, the one or more processors are further configured to: avoid performing a rollback on a non-target subset of the configuration.
[0022] According to one or more embodiments of the present disclosure, in order to perform the rollback, the one or more processors are configured to: perform the rollback from the target subset of the configuration to a corresponding subset of another configuration.
[0023] According to one or more embodiments of the present disclosure, the configuration is arranged in a hierarchical structure.
[0024] According to one or more embodiments of the present disclosure, in order to obtain the indication, the one or more processors are configured to: obtain the indication based at least in part on a command provided from a top level of the hierarchical structure.
[0025] According to one or more embodiments of the present disclosure, in order to obtain the indication, the one or more processors are configured to: obtain the indication based at least in part on a command provided from a level of the hierarchical structure associated with the target subset of the configuration.
[0026] According to one or more embodiments of the present disclosure, in order to obtain the indication, the one or more processors are configured to: obtain the indication based at least in part on an extensible markup language attribute. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Figure 1 is a schematic diagram of an example implementation associated with rolling back a target subset of a configuration.
[0028] Figure 2 is a schematic diagram of an example environment in which the systems and / or methods described herein may be implemented.
[0029] Figure 3 is a schematic diagram of example components of devices associated with a target subset of a rollback configuration.
[0030] Figure 4 is a schematic diagram of example components of devices associated with a target subset of a rollback configuration.
[0031] Figure 5 is a flow diagram of an example process associated with performing a rollback on a targeted subset of a configuration. DETAILED DESCRIPTION
[0032] The following detailed description of example embodiments refers to the accompanying drawings.The same reference numbers in different drawings may identify the same or similar elements.
[0033] The network operating system (NOS) management plane infrastructure may provide a feature called "configuration rollback" that allows a user to "roll back" the current configuration of a network device to any specified previous version or instance of the configuration. The NOS may support the rollback operation from the command line interface (CLI) as follows:
[0034] user@router#rollback
[0035] load complete
[0036] When a "rollback" operation is performed, the candidate configuration of the network device is completely replaced by the specified (previous or "rollback") configuration. If a user (e.g., a network administrator) intends to set the rollback configuration as the active configuration of the network device, the user can cause the NOS to commit the rollback configuration. However, because the network device can only rollback and / or commit the entire configuration, the network device does not provide the flexibility to rollback only specific features (e.g., a portion or subset) of a configuration (e.g., a configuration hierarchy).
[0037] For example, a network device might run an active configuration with the following configuration hierarchy: system{ ...
[0039] }
[0040] interfaces{ ...
[0042] }
[0043] firewall
[0044] policies{ ...
[0046] }
[0047] }
[0048] At some point, the network administrator may realize that the earlier configuration should become the active configuration because the firewall policies that existed in the earlier configuration do not exist in the current active configuration. The network administrator may perform a full rollback to replace the entire active configuration with the previous configuration. For example, the network administrator may enter the following command into the CLI to perform a full rollback from the top level of the configuration hierarchy, as shown below:
[0049] user@router#rollback 2
[0050] load complete
[0051] The "rollback 2" operation may replace the entire active configuration with the "rollback 2" configuration, which may introduce unintended changes to the configuration (e.g., to the system configuration, interface configuration, or the like). The network administrator may manually review and remove the unintended changes, or obtain the "rollback 2" configuration version and copy only the relevant portions of the "rollback 2" configuration version to load onto the network device (e.g., only the firewall policy).
[0052] This largely manual rollback process is cumbersome and can be particularly troublesome if the network device is running a large configuration. The rollback process can also involve a significant amount of time to perform the rollback (e.g., due to the configuration load time associated with loading the entire configuration, or due to the time involved in manually obtaining and copying only the relevant portion of the configuration). Furthermore, rolling back the entire configuration can affect many services (e.g., daemons) associated with the configuration.
[0053] Some embodiments described herein enable the ability to roll back specific (e.g., specified) portions of a network device configuration. For example, a network administrator may flexibly select which hierarchical structure or structures in a configuration to roll back (e.g., rather than rolling back the entire configuration and / or manually copying only the relevant portions from a previous configuration (e.g., policy)). The ability to roll back specific portions of a network device configuration may be provided as a feature in a NOS of a network device.
[0054] Rolling back a specific portion of a network device configuration can reduce the time to perform the rollback. For example, the configuration load time associated with a portion of a network device configuration can be less than the configuration load time associated with the entire network device configuration. In large-scale scenarios (e.g., scenarios involving multiple network devices), the amount of time to perform a rollback can be significantly reduced.
[0055] In addition, the amount of services affected by rolling back a portion of a network device configuration may be less than the amount of services affected by rolling back the entire network device configuration. For example, the rollback of the portion of the network device configuration may only affect those services associated with the portion (e.g., due to the suspension of the portion of the network device configuration). Other services may not be affected by the rollback.
[0056] Figure 1 FIG. 1 is a schematic diagram of an example implementation 100 associated with rolling back a target subset of a configuration. Figure 1 As shown, example implementation 100 includes a user device and a network including a plurality of network devices. Figure 2-Figure 4 These devices are described in more detail.
[0057] As indicated by reference numeral 110, the network device may submit a configuration. For example, the network device may publish a candidate configuration stored in a candidate data store so that the candidate configuration becomes the active configuration. In some examples, the network device may already be configured with one or more other (e.g., previous) configurations.
[0058] In some aspects, the configuration may be arranged as a hierarchical structure (e.g., the configuration may be a hierarchical configuration). For example, the hierarchical structure (or hierarchical configuration) may have a top layer and one or more layers below the top layer. For example, the hierarchical structure (or hierarchical configuration) may include a top layer, and below the top layer, a layer associated with a system configuration feature, a layer associated with an interface configuration feature, a layer associated with a firewall policy, or the like.
[0059] As indicated by reference numeral 120, the network device may obtain an indication from a user device (e.g., a user device associated with a network administrator) to perform a rollback on a target subset of the configuration. The target subset may be a portion of the configuration specifically targeted for rollback. For example, the indication may specify the target subset. In one example, the target subset may be associated with a firewall policy. For example, the target subset may be associated with a level of configuration below the top level, such as a level associated with the firewall policy.
[0060] In some examples, the network device may be instructed based at least in part on a command provided from the top level of the hierarchical structure (or hierarchical configuration). For example, a network administrator may prompt a network device to perform a rollback of a firewall policy from the top level, as shown in the example CLI provided below:
[0061] [edit]
[0062] user@router#rollback 2configuration-path"firewall policies"
[0063] load complete
[0064] [edit]
[0065] In some examples, the network device can obtain an instruction based at least in part on a command provided from a level of a hierarchy (or hierarchical configuration) associated with a target subset of a configuration (e.g., a hierarchical configuration). For example, a network administrator can navigate to a firewall policy edit path (e.g., a level associated with a firewall policy) and then prompt the network device to perform a rollback, as shown in the example CLI provided below:
[0066] [edit firewall policies]
[0067] user@router#rollback 2relative
[0068] load complete
[0069] [edit firewall policies]
[0070] In either approach (e.g., providing the command from the top level or a level associated with the target subset), the network device may load the target subset (e.g., the portion of the configuration associated with the path [edit firewall policy]). For example, the network device may load only the target subset (e.g., without loading the remaining subset of the configuration). Therefore, both approaches may produce the same final functionality, thereby rolling back the target subset of the configuration.
[0071] In some examples, the network device may obtain instructions based at least in part on an Extensible Markup Language (XML) attribute (e.g., "rollback configuration relative path"). For example, a network administrator may enter the XML attribute into the CLI as follows:
[0072] <rpc>
[0073] <load-configuration rollback="2"
[0074] rollback-configuration-relative-path=" / configuration / firewall / policies" / >
[0075] < / rpc>
[0076] The XML attributes may provide XML Application Programming Interface (API) (XML-API) support for the ability to perform rollback of a target subset of a configuration. The XML attributes may enable the use of XML Path Language (XPath) to process the hierarchical structure of the configuration.
[0077] As indicated by reference numeral 130, the network device may perform a rollback on a targeted subset of the configuration based at least in part on the indication. For example, the network device may process the indication, identify the targeted subset (e.g., a firewall policy), and roll back the firewall policy. In some examples, the network device may perform a rollback only on the targeted subset of the configuration, and may avoid performing a rollback on non-target subsets of the configuration. For example, if the targeted subset is associated with a firewall policy, the network device may avoid performing a rollback on subsets that are not associated with the firewall policy, such as system configuration features, interface configuration features, or the like.
[0078] In some examples, the network device can perform a rollback from a target subset of a configuration to a corresponding subset of another (e.g., previous) configuration. For example, if the target subset is associated with a firewall policy, the network device can perform a rollback from the firewall policy associated with the configuration to the firewall policy associated with the previous configuration. The other configuration can be a previous configuration because the network device can have submitted the other configuration before submitting the first configuration.
[0079] Performing a rollback on a targeted subset of a configuration can reduce the time involved in performing a rollback. For example, a configuration load time associated with a targeted subset of a configuration can be less than a configuration load time associated with rolling back an entire network device configuration. Performing a rollback on a targeted subset of a configuration can significantly reduce the amount of time involved in performing a rollback in large-scale scenarios.
[0080] In addition, the amount of services affected by performing a rollback on a targeted subset of a configuration may be less than the amount of services affected by performing a rollback on the entire network device configuration. For example, a rollback of a targeted subset of a configuration may only affect services associated with the targeted subset without affecting other services that would be affected by a rollback of the entire configuration.
[0081] As mentioned above, Figure 1 are provided as examples. Other examples may vary from Figure 1 As described. Figure 1 The number and arrangement of devices shown are provided as examples. Figure 1 There may be additional devices, fewer devices, different devices, or differently arranged devices than those shown. Figure 1 Two or more of the devices shown may be implemented in a single device, or Figure 1 The single device shown may be implemented as multiple distributed devices. Additionally or alternatively, Figure 1 The illustrated set of devices (e.g., one or more devices) may perform the operations described as being performed by Figure 1 Another group of devices is shown performing one or more functions.
[0082] Figure 2FIG. 2 is a diagram of an example environment 200 in which the systems and / or methods described herein may be implemented. Figure 2 As shown, environment 200 may include endpoint device 210, a set of network devices 220 (shown as network device 220-1 through network device 220-N), server device 230, and network 240. The devices of environment 200 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.
[0083] Endpoint device 210 includes one or more devices capable of receiving, generating, storing, processing, and / or providing information, such as the information described herein. For example, end point device 210 may include a mobile phone (e.g., a smart phone or wireless phone), a laptop computer, a tablet computer, a desktop computer, a handheld computer, a gaming device, a wearable communication device (e.g., a smart watch, a pair of smart glasses, a heart rate monitor, a fitness tracker, smart clothing, smart jewelry, or a head mounted display), a network device, or a similar type of device. In some embodiments, endpoint device 210 may receive network traffic from other endpoint devices 210 and / or server device 230 via network 240 (e.g., by using network device 220 as an intermediary to route data packets) and / or may provide network traffic to other endpoint devices 210 and / or server device 230.
[0084] The network device 220 includes one or more devices that can receive, process, store, route and / or provide traffic (e.g., data packets or other information or metadata) in a manner described herein. For example, the network device 220 may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router or a provider core router), a virtual router, or another type of router. Additionally or alternatively, the network device 220 may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, or a data center server), a load balancer, and / or the like. In some embodiments, the network device 220 may be a physical device implemented in a housing, such as a chassis. In some embodiments, the network device 220 may be a virtual device implemented by one or more computer devices in a cloud computing environment or a data center. In some embodiments, a group of network devices 220 may be a group of data center nodes for routing traffic through the network 240.
[0085] Server device 230 includes one or more devices capable of receiving, generating, storing, processing, and / or providing information, such as the information described herein. For example, server device 230 may include a laptop computer, a tablet computer, a desktop computer, a group of server devices, or a similar type of device associated with multicast traffic. In some embodiments, server device 230 may receive information from and / or send information (e.g., multicast traffic) to endpoint device 210 via network 240 (e.g., by using network device 220 as an intermediary to route packets).
[0086] The network 240 includes one or more wired and / or wireless networks. For example, the network 240 may include a packet switching network, a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network such as a long term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-optic-based network, a cloud computing network, or the like, and / or a combination of these or other types of networks.
[0087] Figure 2 The number and arrangement of devices and networks shown are provided as examples. Figure 2 There may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown. Figure 2 Two or more of the devices shown may be implemented in a single device, or Figure 2 The single device shown may be implemented as multiple distributed devices. Additionally or alternatively, one set of devices (eg, one or more devices) of environment 200 may perform one or more functions described as being performed by another set of devices of environment 200.
[0088] Figure 3 is a diagram of example components of a device 300 associated with a target subset of a rollback configuration. Device 300 may correspond to endpoint device 210, network device 220, and / or server device 230. In some implementations, endpoint device 210, network device 220, and / or server device 230 may include one or more devices 300 and / or one or more components of device 300. Figure 3 As shown, device 300 may include a bus 310 , a processor 320 , a memory 330 , an input component 340 , an output component 350 , and / or a communication component 360 .
[0089] Bus 310 may include one or more components that enable wired and / or wireless communications between components of device 300. Bus 310 may include Figure 3 Two or more components of a computer system are coupled together, such as via operational coupling, communication coupling, electronic coupling, and / or electrical coupling. For example, bus 310 may include electrical connections (e.g., wires, traces, and / or leads) and / or wireless buses. Processor 320 may include a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field programmable gate array, an application specific integrated circuit, and / or another type of processing component. Processor 320 may be implemented in hardware, firmware, or a combination of hardware and software. In some embodiments, processor 320 may include one or more processors that can be programmed to perform one or more operations or processes described elsewhere herein.
[0090] The memory 330 may include volatile and / or non-volatile memory. For example, the memory 330 may include random access memory (RAM), read-only memory (ROM), a hard drive, and / or another type of memory (e.g., flash memory, magnetic memory, and / or optical memory). The memory 330 may include internal memory (e.g., RAM, ROM, or hard drive) and / or removable memory (e.g., removable via a universal serial bus connection). The memory 330 may be a non-temporary computer-readable medium. The memory 330 may store information, one or more instructions, and / or software (e.g., one or more software applications) related to the operation of the device 300. In some embodiments, the memory 330 may include one or more memories such as coupled (e.g., communicatively coupled) to one or more processors (e.g., processor 320) via bus 310. The communicatively coupled between the processor 320 and the memory 330 may enable the processor 320 to read and / or process information stored in the memory 330 and / or store information in the memory 330.
[0091] Input assembly 340 may enable device 300 to receive inputs, such as user inputs and / or sensory inputs. For example, input assembly 340 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a GPS sensor, a GNSS sensor, an accelerometer, a gyroscope, and / or an actuator. Output assembly 350 may enable device 300 to provide outputs, such as via a display, a speaker, and / or a light emitting diode. Communication assembly 360 may enable device 300 to communicate with other devices via a wired connection and / or a wireless connection. For example, communication assembly 360 may include a receiver, a transmitter, a transceiver, a modem, a network interface card, and / or an antenna.
[0092] The device 300 may perform one or more operations or processes described herein. For example, a non-transitory computer-readable medium (e.g., memory 330) may store a set of instructions (e.g., one or more instructions or codes) executed by the processor 320. The processor 320 may execute the set of instructions to perform one or more operations or processes described herein. In some embodiments, the execution of the set of instructions by one or more processors 320 causes one or more processors 320 and / or the device 300 to perform one or more operations or processes described herein. In some embodiments, a hardwired circuit system may be used instead of an instruction or in combination with an instruction to perform one or more operations or processes described herein. Additionally or alternatively, the processor 320 may be configured to perform one or more operations or processes described herein. Therefore, the embodiments described herein are not limited to any particular combination of hardware circuit systems and software.
[0093] Figure 3 The number and arrangement of components shown are provided as examples. Figure 3 The device 300 may include additional components, fewer components, different components, or differently arranged components than shown. Additionally or alternatively, a set of components (e.g., one or more components) of the device 300 may perform one or more functions described as being performed by another set of components of the device 300.
[0094] Figure 4 4 is a diagram of example components of a device 400 associated with a target subset of a rollback configuration. Device 400 may correspond to network device 220. In some implementations, network device 220 may include one or more devices 400 and / or one or more components of device 400. Figure 4 As shown, the device 400 may include one or more input components 410-1 to 410-B (B≥1) (hereinafter collectively referred to as input component 410, and individually referred to as input component 410), a switching component 420, one or more output components 430-1 to 430-C (C≥1) (hereinafter collectively referred to as output component 430, and individually referred to as output component 430), and a controller 440.
[0095] The input component 410 may be one or more attachment points of a physical link, and may also be one or more entry points for incoming traffic (such as data packets). The input component 410 may process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some embodiments, the input component 410 may send and / or receive data packets. In some embodiments, the input component 410 may include an input line card, which includes one or more data packet processing components (e.g., in the form of an integrated circuit), such as one or more interface cards (IFCs), data packet forwarding components, line card controller components, input ports, processors, memory, and / or input queues. In some embodiments, the device 400 may include one or more input components 410.
[0096] The switching component 420 can interconnect the input component 410 with the output component 430. In some embodiments, the switching component 420 can be implemented via one or more crossbar switches, via a bus, and / or using a shared memory. The shared memory can act as a temporary buffer to store data packets from the input component 410 before they are ultimately scheduled for delivery to the output component 430. In some embodiments, the switching component 420 can enable the input component 410, the output component 430, and / or the controller 440 to communicate with each other.
[0097] The output component 430 can store data packets and can schedule data packets for transmission on the output physical link. The output component 430 can support data link layer encapsulation or decapsulation, and / or various high-level protocols. In some embodiments, the output component 430 can send data packets and / or receive data packets. In some embodiments, the output component 430 may include an output line card, which includes one or more data packet processing components (e.g., in the form of an integrated circuit), such as one or more IFCs, data packet forwarding components, line card controller components, output ports, processors, memories, and / or output queues. In some embodiments, the device 400 may include one or more output components 430. In some embodiments, the input component 410 and the output component 430 may be implemented by the same set of components (e.g., the input / output component may be a combination of the input component 410 and the output component 430).
[0098] The controller 440 includes a processor in the form of, for example, a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), and / or another type of processor. The processor is implemented in hardware, firmware, or a combination of hardware and software. In some embodiments, the controller 440 may include one or more processors that may be programmed to perform a function.
[0099] In some embodiments, controller 440 may include RAM, ROM, and / or another type of dynamic or static storage device (eg, flash memory, magnetic memory, optical memory, etc.) that stores information and / or instructions for use by controller 440 .
[0100] In some embodiments, the controller 440 can communicate with other devices, networks, and / or systems connected to the device 400 to exchange information about the network topology. The controller 440 can create a routing table based on the network topology information, can create a forwarding table based on the routing table, and can forward the forwarding table to the input component 410 and / or the output component 430. The input component 410 and / or the output component 430 can use the forwarding table to perform a route lookup for incoming and / or outgoing packets.
[0101] The controller 440 may perform one or more processes described herein. The controller 440 may perform these processes in response to executing software instructions stored by a non-transitory computer-readable medium. A computer-readable medium is defined herein as a non-transitory storage device. A storage device includes storage space within a single physical storage device or storage space distributed on multiple physical storage devices.
[0102] The software instructions may be read into a memory and / or storage component associated with the controller 440 from another computer-readable medium or another device via a communication interface. When executed, the software instructions stored in the memory and / or storage component associated with the controller 440 may cause the controller 440 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Therefore, the embodiments described herein are not limited to any specific combination of hardware circuitry and software.
[0103] Figure 4 The number and arrangement of components shown are provided as examples. Figure 4 The device 400 may include additional components, fewer components, different components, or differently arranged components than shown. Additionally or alternatively, a set of components (e.g., one or more components) of the device 400 may perform one or more functions described as being performed by another set of components of the device 400.
[0104] Figure 5 is a flow chart of an example process 500 associated with performing a rollback for a target subset of a configuration. Figure 5 One or more process blocks of are performed by a network device (e.g., network device 220). In some embodiments, Figure 5One or more process blocks of are performed by another device or group of devices separate from or including a network device, such as a network device (e.g., network device 220). Additionally or alternatively, Figure 5 One or more process blocks of may be performed by one or more components of device 300, such as processor 320, memory 330, input component 340, output component 350, and / or communication component 360. Additionally or alternatively, Figure 5 One or more process blocks of may be performed by one or more components of device 400 , such as input component 410 , switching component 420 , output component 430 , and / or controller 440 .
[0105] like Figure 5 As shown, process 500 may include submitting a configuration (block 510). For example, as described above, the network device may submit a configuration.
[0106] like Figure 5 As further shown, process 500 may include obtaining an indication to perform a rollback for a target subset of configurations (block 520). For example, as described above, the network device may obtain an indication to perform a rollback for a target subset of configurations.
[0107] like Figure 5 As further shown, process 500 may include performing a rollback for the target subset of configurations based at least in part on the indication (block 530). For example, as described above, the network device may perform a rollback for the target subset of configurations based at least in part on the indication.
[0108] Process 500 may include additional implementations, such as any single implementation or any combination of implementations described below, and / or be combined with one or more other processes described elsewhere herein.
[0109] In a first embodiment, process 500 includes avoiding, by a network device, performing a rollback on a non-target subset of a configuration.
[0110] In a second embodiment, either alone or in combination with the first embodiment, performing a rollback includes performing a rollback from a target subset of a configuration to a corresponding subset of another configuration.
[0111] In a third embodiment, either alone or in combination with one or more of the first and second embodiments, the configuration is arranged in a layered structure.
[0112] In a fourth embodiment, either alone or in combination with one or more of the first to third embodiments, obtaining the indication includes obtaining the indication based at least in part on a command provided from a top level of the hierarchy.
[0113] In a fifth embodiment, alone or in combination with one or more of the first to fourth embodiments, obtaining the indication includes obtaining the indication based at least in part on a command provided from a level of a hierarchy associated with the configured target subset.
[0114] In a sixth embodiment, alone or in combination with one or more of the first to fifth embodiments, obtaining the indication includes obtaining the indication based at least in part on an extensible markup language attribute.
[0115] although Figure 5 An example block diagram of process 500 is shown, but in some implementations, Figure 5 Process 500 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than shown. Additionally or alternatively, two or more blocks of process 500 may be performed in parallel.
[0116] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the embodiments.
[0117] As used herein, traffic or content may include a set of packets. A packet may refer to a communication structure for communicating information, such as a protocol data unit (PDU), a service data unit (SDU), a network packet, a datagram, a segment, a message, a block, a frame (e.g., an Ethernet frame), a portion of any of the above, and / or another type of formatted or unformatted data unit capable of being sent via a network.
[0118] As used herein, the term "component" is intended to be broadly interpreted as hardware, firmware, or a combination of hardware and software. It is apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, and / or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit these implementations. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code - it should be understood that, based on the description herein, software and hardware may be used to implement the systems and / or methods.
[0119] Even if specific combinations of features are listed in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the various embodiments. In fact, many of these features can be combined in ways that are not specifically listed in the claims and / or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of the various embodiments includes the combination of each dependent claim with each other claim in the claim set. As used herein, the phrase "at least one of" referring to a series of items refers to any combination of those items, including a single member. As an example, "at least one of: a, b, or c" is intended to cover a, b, c, ab, ac, bc, and abc, as well as any combination of multiple identical items.
[0120] Unless so clearly described, any element, action or instruction used in this article should not be interpreted as key or necessary. In addition, as used herein, the article "a" and "an" are intended to include one or more projects, and can be used interchangeably with "one or more". In addition, as used herein, the article "the" is intended to include one or more projects combined with the article "the", and can be used interchangeably with "the one or more (the one or more)". In addition, as used herein, the term "set" is intended to include one or more projects (for example, related projects, unrelated projects, or a combination of related and unrelated projects), and can be used interchangeably with "one or more". In the case of only being intended to a project, the phrase "only one (only one)" or similar language is used. In addition, as used herein, the term "has", "have", "having (having)" or similar items are intended to be open terms. In addition, unless otherwise explicitly stated, the phrase "based on (based on)" is intended to mean "based at least in part on (based, at least inpart, on)". Furthermore, as used herein, the term "or" when used in a series is inclusive and used interchangeably with "and / or" unless expressly stated otherwise (e.g., if used in conjunction with "either" or "only one of").
Claims
1. A method, include: Configuration is submitted by the network device; The network device obtains an instruction to perform a rollback on the target subset of the configuration; as well as The rollback is performed, by the network device, for the target subset of the configuration based at least in part on the indication.
2. The method according to claim 1, further comprising: include: Performing a rollback on a non-target subset of the configuration is avoided by the network device.
3. The method according to claim 1, wherein performing the rollback include: The rollback is performed from the target subset of the configuration to a corresponding subset of another configuration. The method of claim 1 , wherein the configuration is arranged in a hierarchical structure.
5. The method according to claim 4, wherein obtaining the indication include: The indication is obtained based at least in part on a command provided from a top level of the hierarchy.
6. The method according to claim 4, wherein obtaining the indication include: The indication is obtained based at least in part on a command provided from a level of the hierarchy associated with the target subset of the configuration.
7. The method according to claim 1, wherein obtaining the indication include: The indication is obtained based at least in part on an extensible markup language attribute.
8. A non-transitory computer readable medium storing a set of instructions, the set of instructions include: One or more instructions that, when executed by one or more processors of a network device, cause the network device to: Submit the configuration; obtaining an instruction to perform a rollback on a target subset of the configuration; and The rollback is performed for the target subset of the configuration based at least in part on the indication.
9. The non-transitory computer-readable medium of claim 8, wherein the one or more instructions that cause the network device to perform the rollback cause the network device to: The rollback is performed on only the targeted subset of the configuration based at least in part on the indication.
10. The non-transitory computer-readable medium of claim 8, wherein the configuration is a first configuration, and wherein the one or more instructions that cause the network device to perform the rollback cause the network device to: The rollback is performed from the target subset of the first configuration to a corresponding subset of a second configuration submitted by the network device prior to submitting the first configuration.
11. The non-transitory computer-readable medium of claim 8, wherein the configuration is a hierarchical configuration, and wherein the one or more instructions that cause the network device to obtain the indication cause the network device to: The indication is obtained based at least in part on a command provided from a top level of the hierarchical configuration.
12. The non-transitory computer-readable medium of claim 8, wherein the configuration is a hierarchical configuration, and wherein the one or more instructions that cause the network device to obtain the indication cause the network device to: The indication is obtained based at least in part on a command provided from a level of the hierarchical configuration associated with the target subset of the hierarchical configuration.
13. The non-transitory computer-readable medium of claim 8, wherein the one or more instructions that cause the network device to obtain the indication cause the network device to: The indication is obtained based at least in part on an extensible markup language attribute.
14. A network device, include: one or more memories; as well as One or more processors to: Submit the configuration; obtaining an instruction to perform a rollback on a target subset of the configuration; as well as The rollback is performed for the target subset of the configuration based at least in part on the indication.
15. The network device of claim 14, wherein the one or more processors are further configured to: Avoid rollbacks for non-target subsets of the configuration.
16. The network device of claim 14, wherein to perform the rollback, the one or more processors are configured to: The rollback is performed from the target subset of the configuration to a corresponding subset of another configuration.
17. The network device of claim 14, wherein the configuration is arranged in a hierarchical structure.
18. The network device of claim 17, wherein to obtain the indication, the one or more processors are configured to: The indication is obtained based at least in part on a command provided from a top level of the hierarchy.
19. The network device of claim 17, wherein to obtain the indication, the one or more processors are configured to: The indication is obtained based at least in part on a command provided from a level of the hierarchy associated with the target subset of the configuration.
20. The network device of claim 14, wherein to obtain the indication, the one or more processors are configured to: The indication is obtained based at least in part on an extensible markup language attribute.
Citation Information
Cited By
Method and device of stacking system
US12452132B1
