Non-interruption service upgrading method and device

By storing and restoring variable soft tables according to the nested relationship of the data structure, the problems of resource consumption and time consumption during ISSU upgrade are solved, and efficient data recovery and uninterrupted business upgrades are achieved.

CN121530848APending Publication Date: 2026-02-13WUHAN BINARY SEMICON CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511742039.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-25
Publication Date
2026-02-13

AI Technical Summary

Technical Problem

During the ISSU upgrade process, existing technologies require searching and locating data in variable soft tables, variable capacity hard tables, and variable programmable hard tables, resulting in high resource consumption and time consumption, which affects data recovery efficiency.

Method used

The system employs a nested data structure for storage and retrieval. Data from the variable soft table is stored hierarchically in the source data block through storage units, and data is restored based on the information in the storage units after the upgrade, reducing resource consumption and time consumption.

Benefits of technology

It improved the data recovery efficiency during the ISSU upgrade process and enabled upgrades without interrupting business operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121530848A_ABST
    Figure CN121530848A_ABST
Patent Text Reader

Abstract

The invention belongs to the technical field of communication and information processing, and particularly relates to an uninterrupted service upgrading method and device.The method comprises the steps that before ISSU upgrading is carried out, data in a variable soft table is stored in a source data block from the outer layer to the inner layer according to the nesting relation of a data structure; after ISSU upgrading is carried out, the network equipment recovers the variable soft table and stores the variable soft table to a target data block based on a data member identifier of a storage unit in a source data block in a head node and the length and the number of tail nodes; and searching in the recovered variable soft table by using a given data member identifier list before upgrading, and recovering the data members corresponding to the searched data member identifiers into the CPU. In the method, the variable soft table adopts layer-by-layer nested storage, an independent address mapping table does not need to be configured for each piece of data, and the storage and recovery efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure belongs to the field of communication and information processing technology, and in particular relates to a method and apparatus for upgrading services without interruption. Background Technology

[0002] In actual network equipment use, it is sometimes necessary to upgrade the switching equipment. During the upgrade process, the traditional method is to reset the switching chip and CPU control chip and reload the new software. This process will cause a temporary interruption of customer services, and the services can only be restored after the upgrade is completed.

[0003] ISSU (In-Service Software Upgrade) can upgrade without resetting the switching chip, thus avoiding interruption of customer services during the upgrade process. This function requires storing and restoring various data stored in variable soft tables, variable capacity hard tables, and variable programmable hard tables before and after the upgrade, so that the equipment can operate normally after the upgrade.

[0004] For variable soft tables, the network device stores each member data from the pre-upgrade data in the source data block and generates a pre-upgrade layout table. After performing an ISSU upgrade, the network device stores each member data from the post-upgrade data in the destination data block and generates a post-upgrade layout table. Based on the size of the member data corresponding to the target member identifier in the pre-upgrade layout table and the offset of the member data in the source data block, the member data is obtained from the source data block and stored according to the storage location of the target member pointed to in the post-upgrade layout table in the destination data block.

[0005] The above process requires searching and locating data in two tables based on the target member identifier to obtain and store member data, which will consume a lot of resources and time, affecting the data recovery efficiency during the ISSU upgrade process. Summary of the Invention

[0006] To address the aforementioned issues, this disclosure provides a method and apparatus for uninterrupted service upgrades, which directly stores and restores data based on the nested relationships between data, thereby improving data recovery efficiency during the ISSU upgrade process.

[0007] This application provides a method for upgrading services without interruption, including: Before the ISSU upgrade, the data in the variable soft table was stored in the source data block according to the nesting relationship of the data structure from the outer layer to the inner layer. For each layer of data members, storage units were used as the storage unit. Each storage unit included a head node and several tail nodes. The head node stored the data member identifier, length and number, and the tail nodes stored the data members. The data member identifier contained the data type and data variable itself, and the length refers to the storage space occupied by each tail node. After the ISSU upgrade, the network device restores the variable soft table and stores it in the destination data block based on the data member identifier in the head node, the length and number of the tail node in the storage unit of the source data block. Using the list of data member identifiers given before the upgrade, search in the restored variable soft table, and restore the corresponding data member to the CPU for the found data member identifier.

[0008] Furthermore, each data member in a variable soft table corresponds to a data type, which includes basic data types and composite data types. The data in the variable soft table is stored in the source data block according to the nesting relationship of the data structure from the outermost layer to the innermost layer, including: When the data member of a certain layer corresponds to a composite data type, the data member is stored after the nesting is expanded. When the data member of a certain layer corresponds to a basic data type, the data member is stored directly.

[0009] Furthermore, composite data types include: arrays, structures, and pointers; When the data member at a certain level corresponds to a composite data type, the data member is stored after unpacking the nesting, including: When the data type corresponding to a data member is detected to be an array type, perform the following operations: The data member identifier, consisting of the array type and array number, the storage space occupied by the array element, and the number of elements in the array are stored in the head node of the storage unit, and the first element to the last element of the array are stored in the tail node. When the data type corresponding to a data member is detected to be a structure type, perform the following operations: The data member identifier composed of the structure type and structure number, the structure virtual length and the number of storage times are stored in the head node of the storage unit, where the structure virtual length is a set value; Store each sub-member of the data member sequentially, store the data member identifier, length and number of the sub-member in the head node of the next storage unit, and store the sub-member data in the tail node; When the data type corresponding to a data member is detected to be pointer type, perform the following operations: When the data structure of the data member is a linked list, traverse the linked list to obtain the number of nodes in the linked list; store the member identifier composed of the linked list type and linked list number, the linked list length, and the number of nodes in the head node of the storage unit; sequentially store the data sub-members and pointer sub-members in each node of the linked list in the storage unit; for the data sub-member, store the data member identifier, length, and number of the data sub-member in the head node of the next storage unit, and store the data sub-member in the tail node; store the data member identifier, length, and data of the pointer sub-member in the head node of the next storage unit.

[0010] Furthermore, after the ISSU upgrade, the network device restores the variable soft table and stores it in the destination data block based on the data member identifiers of the storage units in the head node, the length and number of the tail node, including: The data type of a data member is determined according to the data member identifier in the storage unit; When the data type is determined to be a composite data type, the data member is restored according to the information in the head node of the storage unit and the head and tail nodes of the associated storage units. When the data type is determined to be a basic data type, the data member is restored according to the information in the head node and tail node of the storage unit.

[0011] Furthermore, the method also includes: If the depth of the EM table or the corresponding HASH algorithm in the variable capacity hard table is changed, then before the ISSU upgrade, the fake software table is allocated in a completely consistent manner according to the actual table depth and HASH algorithm of the upgraded hardware to simulate the hardware table. Using the assigned fake software table, determine whether the existing data can be configured and applied normally after the ISSU upgrade; If the result is yes, perform an ISSU upgrade using the modified EM table.

[0012] Furthermore, the method also includes: For a variable programmable hard table, if the table stores key and action information in the software storage space: Record the programmable hard table flags for the old and new versions separately. If the flags are different, the programmable hard table data needs to be stored and restored.

[0013] Furthermore, it also includes: In the upgrade verification process, if a domain exists in the old version but not in the new version, and the old version has data in that domain, then the upgrade will be deemed impossible. In the old version, all current field information is recorded, including the total number of fields, the string corresponding to each field, the starting position, and the field length, and the table data is saved according to the old version format; Read the table data saved in the old version and write it into the new version. Restore the data to the programmable hard table one by one according to the information of all fields. The comparison between the old version and the new version fields is based on whether the field strings are the same. If a field exists that was not present in the old version but is present in the new version, then assign it the set value.

[0014] This application also provides a non-disruptive service upgrade device, including: The storage module is used to store data from the variable soft table into source data blocks according to the nested relationship of the data structure from the outermost layer to the innermost layer before ISSU upgrade. The data members of each layer are stored in units of storage units. Each storage unit includes a head node and several tail nodes. The head node stores the data member identifier, length and number, and the tail nodes store the data members. The data member identifier contains the data type and data variable of the data member. The length refers to the storage space occupied by each tail node. The recovery module is used to restore the variable soft table and store it in the destination data block after an ISSU upgrade, based on the data member identifier in the head node, the length and number of the tail node of the storage unit in the source data block. The lookup module is used to search in the restored variable soft table using the list of data member identifiers given before the upgrade, and restore the corresponding data member to the CPU for the found data member identifier.

[0015] This application also provides an electronic device, including a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus; Memory, used to store computer programs; The processor implements the above method when executing programs stored in memory.

[0016] This application also provides a computer storage medium storing a computer program, which, when executed by a processor, implements the above-described method.

[0017] Compared with the prior art, this disclosure has the following advantages: 1. Variable soft tables use "layer-by-layer nested storage", eliminating the need to configure an independent address mapping table for each piece of data, thus improving storage and recovery efficiency.

[0018] 2. Through the design of data storage and recovery methods, the function of upgrading services without interruption was realized.

[0019] Other features and advantages of this disclosure will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the disclosure. The objects and other advantages of this disclosure may be realized and obtained by means of the structures pointed out in the description, claims and drawings. Attached Figure Description

[0020] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0021] Figure 1 This is a schematic diagram of the head and tail structure of a storage unit; Figure 2 A schematic diagram of the storage unit header for structure types and data types; Figure 3 This is a schematic diagram of the head of a linked list type storage unit; Figure 4 A block diagram of an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation

[0022] To make the objectives, technical solutions, and advantages of the embodiments of this disclosure clearer, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.

[0023] To clearly understand the solutions of the embodiments of this disclosure, the ISSU upgrade process will first be described; then, the storage and recovery of variable soft tables, variable capacity hard tables, and variable programmable hard tables involved in the non-disruptive service upgrade method in the embodiments of this disclosure will be described respectively.

[0024] 1) ISSU upgrade process: The device's CPU is reset, but the switching chip is not reset. Then, the unchanged parts of the chip hardware (hard table) and SDK (soft table) are restored to their state before the upgrade, and the variable parts are stored and restored according to the corresponding rules.

[0025] 2) Storage and recovery of variable soft tables involved in non-disruptive business upgrade methods: Step 1: Before performing the ISSU upgrade, store the data in the variable soft table in the source data block according to the nesting relationship of the data structure from the outer layer to the inner layer.

[0026] In this approach, data members at each level are stored in units of storage, such as... Figure 1 As shown, each storage unit includes a head node and several tail nodes; the head node stores the data member identifier, length and number, and the tail nodes store the data members. The data member identifier contains the data type and the data variable itself, and the length refers to the storage space occupied by each tail node. Specifically, each data member in a variable soft table corresponds to a data type, which includes basic data types and composite data types. When the data member of a certain layer corresponds to a composite data type, the data member is stored after the nesting is expanded. When the data member of a certain layer corresponds to a basic data type, the data member is stored directly.

[0027] Composite data types include: arrays, structures, and pointers; When the data member at a certain level corresponds to a composite data type, the data member is stored after unpacking the nesting, including: When the data type corresponding to a data member is detected to be an array type, perform the following operations: The data member identifier, consisting of the array type and array number, the storage space occupied by the array element, and the number of elements in the array are stored in the head node of the storage unit, and the first element to the last element of the array are stored in the tail node. When the data type corresponding to a data member is detected to be a structure type, perform the following operations: The data member identifier composed of the structure type and structure number, the structure virtual length and the number of storage times are stored in the head node of the storage unit, where the structure virtual length is a set value; Store each sub-member of the data member sequentially, store the data member identifier, length and number of the sub-member in the head node of the next storage unit, and store the sub-member data in the tail node; When the data type corresponding to a data member is detected to be pointer type, perform the following operations: When the data structure of the data member is a linked list, traverse the linked list to obtain the number of nodes in the linked list; store the member identifier composed of the linked list type and linked list number, the linked list length, and the number of nodes in the head node of the storage unit; sequentially store the data sub-members and pointer sub-members in each node of the linked list in the storage unit; for the data sub-member, store the member identifier, length, and number of the data sub-member in the head node of the next storage unit, and store the data sub-member in the tail node; store the data member identifier, length, and data of the pointer sub-member in the head node of the next storage unit.

[0028] Step 2: After performing the ISSU upgrade, the network device restores the variable soft table and stores it in the destination data block based on the data member identifier in the head node, the length and number of the tail node of the storage unit in the source data block.

[0029] Specifically, the data type of the data member is determined according to the data member identifier in the storage unit; When the data type is determined to be a composite data type, the data member is restored according to the information in the head node of the storage unit and the head and tail nodes of the associated storage units. When the data type is determined to be a basic data type, the data member is restored according to the information in the head node and tail node of the storage unit.

[0030] The following explains the storage and restoration of data types arrays and structures.

[0031] like Figure 2 As shown, the data that needs to be stored includes structure a and its members, and array b.

[0032] When the data type of the stored data is a structure type 'a', the storage method is as follows: Step 211: Store the header information of structure a. This includes structure type a, length 0 (the actual length of the structure type is reflected in its members or nested sub-members; the structure type header itself does not indicate the length), and number 1 (indicating that this structure is only repeated once in storage).

[0033] Step 212: Store the first member x. First, store the header information of x, including type x, length (the amount of storage space occupied by a single x), and number (the number of x, which is 1 in the current example). Then, store the tail information of x, that is, all the specific storage data of member x.

[0034] Step 213: Store the information of each subsequent member of structure a in sequence (y and z in the current example).

[0035] During restoration, the order corresponds to the order in which the data was stored. The steps are as follows: Step 214: Restore the fixed-size header information. Identify the structure type a of the header, with length 0 and count 1, indicating that the subsequent data is to be restored to structure a currently.

[0036] Step 215: Restore the fixed-size header information. Identify the integer type x of the header, with length and count 1, indicating that the member x of structure a is to be restored currently. Restore the subsequent data corresponding to x to x (with size equal to length multiplied by count 1).

[0037] Step 216: Restore each subsequent member information of structure a in sequence (in this example, y and z).

[0038] When the data type of the stored data is array type b, the storage method is as follows: Step 221: Obtain the array b represented as m[n].

[0039] Step 222: Store the header information of array b. Include array type b, length (the storage space size occupied by each array element), and count (the number of array elements, n in this example).

[0040] Step 223: Store the tail information of array b. That is, all the specific stored data of array b, from the first element to the nth element, are stored at once.

[0041] During restoration, it is restored in correspondence with the storage order. The steps are as follows: Step 224: Restore the fixed-size header information. Identify the data type b of the header, with length and count n, indicating that the subsequent data is to be restored to array b currently.

[0042] Step 225: Restore the tail information of array b. Restore the subsequent tail from the first element to the nth element at once.

[0043] As Figure 3 shown, it is an example of a singly linked list with 3 linked list nodes. Among them, the type list is the data member identifier, Figure 3 which is an abbreviation here and includes the data types and the information of the data variables themselves described above.

[0044] First, there is a header for the entire linked list, with type list, length 0, and count 3.

[0045] Then, inside the linked list, there are three variable members x, y, z and a pointer p. So, three variable headers and tails are needed, while the pointer p has only one pointer header and no tail.

[0046] The storage steps of the singly linked list in this example are as follows: a. Detect that there is a pointer inside the code data structure pointer of the variable soft table, and determine it as a singly linked list; b. Traverse the singly linked list to obtain the number of nodes in the singly linked list; c. Store the head of a singly linked list; d. Traverse the linked list. Each node stores three internal members of the linked list. Store the corresponding storage unit for each node, which contains three members: x, y, and z.

[0047] The steps to restore the singly linked list in this example are as follows: Step 231: Restore the fixed-size head information, identify the linked list type of the head, with a length of 0 and a number of nodes of 3, indicating that the subsequent data should be restored to the linked list and the number of nodes to be restored is 3.

[0048] Step 232: Allocate space for the first linked list node and restore the data stored in the first linked list to that node.

[0049] Step 233: Restore the fixed-size header information. Identify the header type x, length, and number 1, indicating that the current target is to restore the member x of the first node of the linked list. Restore the subsequent data corresponding to x into x (size is length multiplied by number 1).

[0050] Step 234: Restore the information of each subsequent member of the linked list in turn (y and z in the current example).

[0051] Step 235: Restore the fixed-size header information, identify the type p of the header, length 0, number 1, indicating that it is currently a pointer p in the linked list.

[0052] Step 236: Allocate space for the second linked list node and make the pointer p in the first node point to the second node.

[0053] Step 237: Restore the data stored in the second linked list to this node. The specific operation is similar to steps 232 to 235.

[0054] Step 238: Allocate space for the third linked list node and make the pointer p in the second node point to the third node.

[0055] Step 239: Restore the data stored in the third linked list to this node. The specific operation is similar to steps 232 to 235.

[0056] Step 2310: Set the pointer p in the third node to null (indicating that there are no subsequent nodes).

[0057] This completes the restoration of the single-stripe watch.

[0058] Step 3: Using the list of data member identifiers given before the upgrade, search in the restored variable soft table, and restore the corresponding data member to the CPU for the found data member identifier.

[0059] Steps 1-3 above complete the storage and recovery of the variable soft table involved in the non-disruptive business upgrade method.

[0060] 3) Storage and recovery of variable capacity hard tables In chip design, there are scenarios where multiple tables share storage space. When the storage space of each table changes, ISSU storage and recovery need to be adapted accordingly. Variable-capacity hard tables include three types: EM tables, direct tables, and TCAM tables. The data storage and recovery implementation for each of these three types of tables is described below.

[0061] EM table There are two types of changes that can be made to the EM table: its depth can be changed, and the corresponding hash algorithm can also be modified. According to ISSU's requirements, if the depth of the EM table or the corresponding hash algorithm in the variable-capacity hard table is changed, then before the ISSU upgrade, the fake software table will be allocated in a completely consistent manner according to the actual depth of the table entries in the upgraded hardware and the hash algorithm, in order to simulate the hardware table. Using the assigned fake software table, determine whether the existing data can be configured and applied normally after the ISSU upgrade; If the result is yes, perform an ISSU upgrade using the modified EM table.

[0062] The overall design scheme is as follows: Before upgrading ISSU, the specifications or hash algorithm of the shared table to be upgraded need to be verified to ensure that the modified specifications or hash algorithm can successfully configure the already configured key. If so, EM supports the ISSU upgrade.

[0063] After the ISSU upgrade, entries with changes to specifications or hash algorithms need to be reconfigured; those without changes do not.

[0064] direct table For direct tables, they can be copied directly after capacity expansion. For capacity reduction, first determine if the current table entry capacity is less than the number of entries required for recovery. If it is less, an error is reported. If the capacity is sufficient for recovery, move entries sequentially backward from the last entry to available positions, simultaneously revising the sub-indexes of its predecessor entries and flushing the revisions back to the software storage space.

[0065] TCAM table For TCAM tables, they can be copied directly after capacity expansion. For capacity reduction, first determine if the current table capacity is less than the number of entries required for recovery; if so, report an error. If the capacity is sufficient for recovery, move entries sequentially forward from the first movable entry to an available position.

[0066] 4) Storage and recovery of variable programmable hard tables A programmable hard table is a table whose entries do not represent fixed chip information, but can be configured with various chip information through software control according to actual needs. Programmable hard tables fall into two categories: one is a table that stores key (trigger source) and action (action / response, the specific operation performed by the device when the "Key" is triggered) information in the software storage space; the other is a table that does not store relevant information in the software storage space. These two types are handled separately.

[0067] The table that stores key and action information in the software storage space: (1) Record the programmable hard table flags of the old and new versions respectively. If the flags are different, the programmable hard table data storage and recovery are required. In the upgrade verification, if there is a field in the old version that is not in the new version, and the old version has data in that field, it will be directly determined that the upgrade is not possible. (2) Save the stored data in the software's storage space; (3) Restore the data in the saved software storage space; (4) Configure the control information of the programmable hard table; (5) Write the recovered programmable hard table data (including key and action) into the hardware.

[0068] There is no table storing this information in the software storage space: (1) Record the programmable hard table flags of the old and new versions respectively. If the flags are different, the programmable hard table data storage and recovery are required. In the upgrade verification, if there is a field in the old version that is not in the new version, and the old version has data in that field, it will be directly determined that the upgrade is not possible. (2) Record all current field information in the old version, including the number of all fields, the string corresponding to each field, the starting position, the field length, and save the table data according to the old version format; (3) In the new version, the table data saved in the old version is read out and restored to the hardware table one by one according to the information of all fields. The comparison between the old version and the new version fields is based on whether the field strings are the same. If there is a field that is not in the old version but is in the new version, then the value of it is set to 0.

[0069] Based on the same inventive concept as the above-disclosed content, this disclosure also provides a non-interrupted service upgrade device, including: The storage module is used to store data from the variable soft table into source data blocks according to the nested relationship of the data structure from the outermost layer to the innermost layer before ISSU upgrade. The data members of each layer are stored in units of storage units. Each storage unit includes a head node and several tail nodes. The head node stores the data member identifier, length and number, and the tail nodes store the data members. The data member identifier contains the data type and data variable of the data member. The length refers to the storage space occupied by each tail node. The recovery module is used to restore the variable soft table and store it in the destination data block after an ISSU upgrade, based on the data member identifier in the head node, the length and number of the tail node of the storage unit in the source data block. The lookup module is used to search in the restored variable soft table using the list of data member identifiers given before the upgrade, and restore the corresponding data member to the CPU for the found data member identifier.

[0070] Based on the same inventive concept as the above-disclosed content, this disclosure also provides an electronic device, such as... Figure 4 As shown. An electronic device according to an embodiment of this disclosure includes at least one processor and at least one memory electrically connected to the processor, wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method described above.

[0071] It should be noted that the electrical connection between the above-mentioned units does not necessarily mean the connection between lines. The indirect connection method can be applied to the embodiments of this disclosure as long as it achieves the purpose of this disclosure.

[0072] Based on the same inventive concept, this disclosure also provides a computer storage medium storing a computer program, which, when executed by a processor, implements the above-described method.

[0073] Although the present disclosure has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present disclosure.

Claims

1. A method for upgrading services without interruption, characterized in that, include: Before the ISSU upgrade, the data in the variable soft table was stored in the source data block according to the nesting relationship of the data structure from the outer layer to the inner layer. For each layer of data members, storage units were used as the storage unit. Each storage unit included a head node and several tail nodes. The head node stored the data member identifier, length and number, and the tail nodes stored the data members. The data member identifier contained the data type and data variable itself, and the length refers to the storage space occupied by each tail node. After the ISSU upgrade, the network device restores the variable soft table and stores it in the destination data block based on the data member identifier in the head node, the length and number of the tail node in the storage unit of the source data block. Using the list of data member identifiers given before the upgrade, search in the restored variable soft table, and restore the corresponding data member to the CPU for the found data member identifier.

2. The method according to claim 1, characterized in that, Each data member in a variable soft table corresponds to a data type, which includes basic data types and composite data types. The data in the variable soft table is stored in the source data block according to the nesting relationship of the data structure from the outermost layer to the innermost layer, including: When the data member of a certain layer corresponds to a composite data type, the data member is stored after the nesting is expanded. When the data member of a certain layer corresponds to a basic data type, the data member is stored directly.

3. The method according to claim 2, characterized in that, Composite data types include: arrays, structures, and pointers; When the data member at a certain level corresponds to a composite data type, the data member is stored after unpacking the nesting, including: When the data type corresponding to a data member is detected to be an array type, perform the following operations: The data member identifier, consisting of the array type and array number, the storage space occupied by the array element, and the number of elements in the array are stored in the head node of the storage unit, and the first element to the last element of the array are stored in the tail node. When the data type corresponding to a data member is detected to be a structure type, perform the following operations: The data member identifier composed of the structure type and structure number, the structure virtual length and the number of storage times are stored in the head node of the storage unit, where the structure virtual length is a set value; Store each sub-member of the data member sequentially, store the data member identifier, length and number of the sub-member in the head node of the next storage unit, and store the sub-member data in the tail node; When the data type corresponding to a data member is detected to be pointer type, perform the following operations: When the data structure of the data member is a linked list, traverse the linked list to obtain the number of nodes in the linked list; store the member identifier composed of the linked list type and linked list number, the linked list length, and the number of nodes in the head node of the storage unit; sequentially store the data sub-members and pointer sub-members in each node of the linked list in the storage unit; for the data sub-member, store the data member identifier, length, and number of the data sub-member in the head node of the next storage unit, and store the data sub-member in the tail node; store the data member identifier, length, and data of the pointer sub-member in the head node of the next storage unit.

4. The method according to claim 2, characterized in that, After performing an ISSU upgrade, the network device restores the variable soft table and stores it in the destination data block based on the data member identifiers of the storage units in the head node, the length and number of the tail node, including: The data type of a data member is determined according to the data member identifier in the storage unit; When the data type is determined to be a composite data type, the data member is restored according to the information in the head node of the storage unit and the head and tail nodes of the associated storage units. When the data type is determined to be a basic data type, the data member is restored according to the information in the head node and tail node of the storage unit.

5. The method according to claim 1, characterized in that, The method further includes: If the depth of the EM table or the corresponding HASH algorithm in the variable capacity hard table is changed, then before the ISSU upgrade, the fake software table is allocated in a completely consistent manner according to the actual table depth and HASH algorithm of the upgraded hardware to simulate the hardware table. Using the assigned fake software table, determine whether the existing data can be configured and applied normally after the ISSU upgrade; If the result is yes, perform an ISSU upgrade using the modified EM table.

6. The method according to claim 1, characterized in that, The method further includes: For a variable programmable hard table, if the table stores key and action information in the software storage space: Record the programmable hard table flags for the old and new versions separately. If the flags are different, the programmable hard table data needs to be stored and restored.

7. The method according to claim 6, characterized in that, Also includes: In the upgrade verification process, if a domain exists in the old version but not in the new version, and the old version has data in that domain, then the upgrade will be deemed impossible. In the old version, all current field information is recorded, including the total number of fields, the string corresponding to each field, the starting position, and the field length, and the table data is saved according to the old version format; Read the table data saved in the old version and write it into the new version. Restore the data to the programmable hard table one by one according to the information of all fields. The comparison between the old version and the new version fields is based on whether the field strings are the same. If a field exists that was not present in the old version but is present in the new version, then assign it the set value.

8. A non-disruptive service upgrade device, characterized in that, include: The storage module is used to store data from the variable soft table into source data blocks according to the nested relationship of the data structure from the outermost layer to the innermost layer before ISSU upgrade. The data members of each layer are stored in units of storage units. Each storage unit includes a head node and several tail nodes. The head node stores the data member identifier, length and number, and the tail nodes store the data members. The data member identifier contains the data type and data variable of the data member. The length refers to the storage space occupied by each tail node. The recovery module is used to restore the variable soft table and store it in the destination data block after an ISSU upgrade, based on the data member identifier in the head node, the length and number of the tail node of the storage unit in the source data block. The lookup module is used to search in the restored variable soft table using the list of data member identifiers given before the upgrade, and restore the corresponding data member to the CPU for the found data member identifier.

9. An electronic device, characterized in that, It includes a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus; Memory, used to store computer programs; A processor, when executing a program stored in memory, implements the method described in any one of claims 1-7.

10. A computer storage medium, characterized in that, The computer storage medium stores a computer program, which, when executed by a processor, implements the method described in any one of claims 1-7.