A port information synchronization method and apparatus
Patent Information
- Application Number
- CN202510899300.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-30
- Publication Date
- 2026-08-21
- Estimated Expiration
- 2045-06-30
AI Technical Summary
也就是说,在VOQ资源总量不变的情况下,需拆分的端口越多,需要预留的端口越多,能够支持的NCP数量减少,面板端口数量也呈下降趋势,由于为预留端口创建的VOQ表项可能不会全部被使用,因此存在VOQ资源浪费的问题
[0018] By adopting the above technical solution, NCPs in the OPEN DDC network can synchronize port information through CPU topology connections, solving the current problem that NCPs cannot synchronize port information through IPC. With port information synchronization between NCPs, changes in NCP port information can be promptly synchronized to other NCPs in the OPEN DDC network, enabling each NCP to update its VOQ in a timely manner. This eliminates the need to pre-allocate VOQs for each NCP for potentially split ports, saving VOQ resources while supporting port splitting requirements and increasing the number of NCPs supported by the entire network.
Smart Images

Figure CN120729874B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a method and apparatus for synchronizing port information. Background Technology
[0002] Open Diversified Dynamic-Connectivity (OPEN DDC) technology is an open and innovative network architecture design that breaks away from the traditional centralized chassis switch design and uses a distributed decoupling approach to improve the flexibility and scalability of data center networks.
[0003] For each Network Connectivity Processor (NCP) in an OPEN DDC network, a Virtual Output Queue (VOQ) entry needs to be established for each of its own panel ports and internal ports, as well as for the panel ports and internal ports of other NCPs in the network. Therefore, the VOQ entry for each NCP requires a large amount of VOQ hardware resources. However, the total specification of VOQ hardware resources in the network is limited. Assuming the total specification of VOQ hardware resources is 64K, 8 VOQ queues need to be allocated to each port. Each NCP uses 18 800G panel ports to interconnect with other NCPs, and each NCP has 8 internal ports. If the ports on all NCPs are not split, the total VOQ resources consumed by each NCP is the number of ports of a single NCP (18+8) multiplied by the number of VOQ queues per port (8), that is, (18+8)*8 = 208. The total VOQ resources required by the entire network are 208*256=53248<65535(64K). Therefore, this configuration can support a maximum of 256 NCP-specification networks, and the number of 800G panel ports that the entire network can provide is 18*256=4608.
[0004] The NCPs in this network support dynamic splitting of 800G panel ports. However, the NCPs cannot notify each other of dynamic splitting events via IPC messages. As a result, after the remote NCP dynamically splits the port, the local NCP connected to the remote NCP cannot detect these splits. This makes it impossible for the local NCP to determine how many VOQs should be created for the port of the remote NCP, and also impossible to determine the rate of the scheduling template corresponding to each VOQ.
[0005] To overcome the above problems, ports and VOQ resources can be statically reserved during each NCP initialization. Taking the requirement to support a 1-to-2 split of an 800G port as an example, during NCP initialization, VOQ resources are allocated according to the rule of reserving 3 port resources for each port. For each port, the first reserved port is of type 800G, and the second and third reserved ports are of type 400G. Using this static reservation method, 64K of VOQ resources can support a maximum of 132 NCP specifications in a network, providing a total of 4752 panel ports for the entire network. Similarly, if it is necessary to support a 1-to-4 split of an 800G port, using the same static reservation method, 64K of VOQ resources can support a maximum of 61 NCP specifications in a network, reducing the total number of 400G panel ports available for the entire network to 2196. In other words, with the total amount of VOQ resources remaining unchanged, the more ports that need to be split, the more ports need to be reserved, the fewer NCPs can be supported, and the number of panel ports also tends to decrease. Since not all VOQ entries created for reserved ports may be used, there is a problem of wasted VOQ resources. Summary of the Invention
[0006] The purpose of this application is to provide a port information synchronization method and apparatus to reduce the waste of VOQ resources while supporting panel port splitting. The specific technical solution is as follows:
[0007] In a first aspect, embodiments of this application provide a port information synchronization method, applied to a first NCP, the first NCP being in an OPEN DDC network, the OPEN DDC network further including a second NCP; the method includes:
[0008] Get local port information;
[0009] The CPU topology connection between the first NCP and the second NCP sends first port synchronization information to the second NCP, so that the second NCP updates the VOQ based on the first port synchronization information, the first port synchronization information including the local port information.
[0010] Secondly, embodiments of this application provide a port information synchronization device applied to a first NCP, the first NCP being in an OPEN DDC network, the OPEN DDC network further including a second NCP; the device includes:
[0011] The acquisition module is used to obtain local port information;
[0012] The sending module is configured to send first port synchronization information to the second NCP through the CPU topology connection between the first NCP and the second NCP, so that the second NCP updates the VOQ based on the first port synchronization information, wherein the first port synchronization information includes the local port information.
[0013] Thirdly, embodiments of this application provide 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;
[0014] Memory, used to store computer programs;
[0015] When a processor executes a program stored in memory, it implements the method described in the first aspect above.
[0016] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the method described in the first aspect above.
[0017] Fifthly, embodiments of this application also provide a computer program product containing instructions that, when run on a computer, cause the computer to perform the method described in the first aspect above.
[0018] By adopting the above technical solution, NCPs in the OPEN DDC network can synchronize port information through CPU topology connections, solving the current problem that NCPs cannot synchronize port information through IPC. With port information synchronization between NCPs, changes in NCP port information can be promptly synchronized to other NCPs in the OPEN DDC network, enabling each NCP to update its VOQ in a timely manner. This eliminates the need to pre-allocate VOQs for each NCP for potentially split ports, saving VOQ resources while supporting port splitting requirements and increasing the number of NCPs supported by the entire network. Attached Figure Description
[0019] Figure 1 A schematic diagram of the internal architecture of a traditional chassis switch provided by existing technology and the physical devices in an OPEN DDC network;
[0020] Figure 2 A schematic diagram of the Open DDC forwarding principle provided for existing technologies;
[0021] Figure 3 A schematic diagram of panel port allocation relationship provided for existing technology;
[0022] Figure 4A flowchart of a port information synchronization method provided in this application embodiment;
[0023] Figure 5 A flowchart of a method for synchronizing port information using a driver layer provided in an embodiment of this application;
[0024] Figure 6 A flowchart illustrating a method for synchronizing port information using a control layer, as provided in an embodiment of this application;
[0025] Figure 7 A schematic diagram of a port allocated using a combination of dynamic and static allocation methods, provided in an embodiment of this application;
[0026] Figure 8 A schematic diagram of ports allocated using the fully dynamic allocation method before splitting, provided as an embodiment of this application;
[0027] Figure 9 A schematic diagram of port splitting according to the fully dynamic allocation method provided in an embodiment of this application;
[0028] Figure 10 This is a schematic diagram of the structure of a port information synchronization device provided in an embodiment of this application;
[0029] Figure 11 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0030] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art based on this application are within the scope of protection of this application.
[0031] To facilitate understanding, the relevant technical terms involved in the embodiments of this application will be introduced first.
[0032] OPEN DDC technology enables the distributed deployment of network functions by breaking down traditional large network switches into smaller, independent modular components, namely box switches. These box switches can act as forwarding boards or switching boards, and they are distributed and installed in multiple racks, thus providing better thermal management, power consumption control, and overcoming the limitations of equipment upgrades and space expansion.
[0033] like Figure 1 As shown, Figure 1This diagram illustrates the internal architecture of a traditional chassis switch and the physical devices used in an OPEN DDC network. A traditional chassis switch includes interface boards (the switch's ingress ports), switching network boards, interface boards (the switch's egress ports), a primary main control board, and a backup main control board. The interface boards (the ingress ports) receive packets from the outside (incoming packets) and the interface boards (the egress ports) forward packets to other devices (outgoing packets). In an OPEN DDC network, Network Connectivity Fabric (NCF) functions as both the interface boards and main control board in a traditional chassis switch, while NCP functions as the switching network board.
[0034] Open DDC networking, based on Virtual Output Queuing (VOQ) and Cell switching mechanisms, ensures balanced traffic load and congestion-free operation. VOQ is a network congestion management technique used to prevent Head-of-Line Blocking (HOL). In traditional input buffer queuing schemes, packets first enter the input buffer, and then packets are dequeued based on the availability of the destination port. However, when multiple packets have the same destination port, multiple packets will queue in the input buffer, leading to congestion. VOQ technology creates a virtual output queue for each output port, directly placing input packets into the virtual output queue corresponding to the packet's destination port. This allows packets to directly select a matching virtual output queue when entering a router or switch, regardless of the destination port's availability. Therefore, VOQ avoids the congestion and bottleneck problems that can be caused by input buffer queuing, improving network throughput and performance. Utilizing VOQ technology and Cell switching mechanisms, combined with powerful caching capabilities, can effectively reduce congestion risks and improve overall network throughput.
[0035] like Figure 2 As shown, Figure 2 A schematic diagram of the Open DDC forwarding principle provided for existing technologies. Figure 2 The diagram shows server 1, server 2, server 3, and server 4. Server 1 is connected to NCP1, server 2 is connected to NCP2, server 3 is connected to NCP3, and server 4 is connected to NCP4. NCP1, NCP2, NCP3, and NCP4 are all connected to NCF1 and NCF2.
[0036] The intelligent computing network built with Open DDC contains a Cell forwarding domain. Packet forwarding between the NCP and NCF belongs to the Cell forwarding domain, while packet forwarding between the server and the NCP belongs to the IP forwarding domain. The NCP has a VOQ forwarding table, and the NCF has a Cell forwarding table. The specific forwarding process includes the following steps:
[0037] Step 1: NCP1 receives the message that server 1 needs to send to server 4, and looks up the VOQ table based on the message to obtain the system port number and NCP encapsulation information index that match the message.
[0038] Step 2: NCP1 adds the packet to the VOQ queue based on the found system port number. If there is a token for the system port number, it means that the packet can be forwarded. Then, the packet is cell-fragmented and each fragment is encapsulated with a cell. The encapsulation header includes information such as MODID and port ID. Then, NCP1 sprays the encapsulated cell packets to NCF.
[0039] NCP1 performs cell fragmentation on packets to form cells of equal length for load balancing forwarding. This is achieved through multi-link round-robin transmission. For example, the first cell packet is sent to NCF1, the second cell packet is sent to NCF2, and the third cell packet is sent to NCF1. This round-robin transmission ensures that the traffic on the two links tends to be absolutely average.
[0040] Step 3: After receiving the Cell message, NCF1 and NCF2 each look up the local Cell forwarding table to obtain the outgoing interface, and forward the Cell message to NCP4 through the outgoing interface.
[0041] Step 4: After receiving the Cell message, NCP4 reassembles the message according to the sequence number of the Cell message, obtains the encapsulation information based on the NCP encapsulation information index encapsulated in the Cell header, adds a second layer of encapsulation to the reassembled message, and then sends the encapsulated message to server 4.
[0042] When each NCP in the OPEN DDC network uses 18 800G Ethernet panel ports, assuming the total specification of VOQ hardware resources is 64K, 8 VOQs need to be allocated to each port, and the total number of 800G panel ports that the entire network can provide is 4608.
[0043] If it is necessary to support splitting 800G panel ports into 400G panel ports, and NCPs that have not undergone port splitting need to communicate with NCPs that have undergone port splitting, in traditional chassis switches, there is a dedicated out-of-band IPC management channel between service boards, network boards, and the main control board. Board insertion / removal events and port splitting events of any service board in the chassis can be interrupted or sent to the main control board by sending IPC messages. This allows the main control board to uniformly manage the core data information of each service board and notify all service boards to dynamically create and delete VOQs for board insertion / removal events and port splitting events of other service boards.
[0044] However, in OPEN DDC networking, there is no out-of-band inter-process communication (IPC) management channel between devices. After the remote NCP's port is dynamically split, or when the remote NCP restarts based on the configuration information of the split port, there is no mechanism to transmit the dynamic port splitting event and the port information of the split NCP to other NCPs. As a result, the local NCP cannot detect whether the remote NCP has split its port. Consequently, when each NCP starts up, it cannot determine how many VOQs need to be created for the remote NCP's port, nor can it determine the rate of the scheduling template corresponding to each VOQ.
[0045] Therefore, in existing technology, ports and VOQ resources can be statically reserved during the initialization of each NCP. That is, when each NCP is initialized and started, VOQ entries are created for its own output ports and the output ports of all remote NCPs. If it is necessary to support the requirement of splitting an 800G panel port into two, then VOQs and VOQ entries need to be created according to the rule of reserving three port resources for each panel port. Specifically, for each panel port, the first reserved port is of 800G port type, and a VOQ and a specified scheduling template are created according to the 800G port rate. The second and third reserved ports are of 400G port type, and VOQs and specified scheduling templates are created according to the 400G port rate. In this way, after all NCP devices have completed initialization and are connected to the NCF via the serializer / deserializer (SERDES) interface, traffic destined for any unsplit 800G panel port or any split 400G panel port of any NCP can be forwarded normally. Even without splitting the 800G panel port into two, the VOQ and VOQ entries for the 400G panel port have already been created, but no traffic will hit them. Similarly, after splitting the 800G panel port into two, the VOQ and VOQ entries for the 800G port still exist, but no traffic will hit them. In this scenario, assuming each port corresponds to 8 VOQs, the total number of VOQ resources consumed by each NCP is: the number of reserved ports (18*3 panel ports + 8 internal ports per NCP) multiplied by 8 (8 VOQs per port) = 496. Therefore, 64K VOQ resources can provide 64K / 496 = 132 NCP specifications, and the total number of 400G panel ports that can be supported is the number of NCPs (132) * the number of 400G panel ports on each NCP (36, i.e., 18*2 400G panel ports per NCP) = 4752.
[0046] Similarly, if it is also necessary to support the requirement of splitting the 800G panel port into 4, then VOQ and VOQ entries need to be created according to the rule of reserving 7 port resources for each panel port. Specifically, for each panel port, each NCP needs to statically reserve 1 800G port, 2 400G ports, and 4 200G ports for that panel port. Therefore, the total number of VOQ resources consumed by each NCP is the number of reserved ports (18 * 7 panel ports + 8 internal ports per NCP) multiplied by 8 (8 VOQs per port) = 1072. Therefore, 64K VOQ resources can provide 64K / 1072=61 NCP specifications, and the total number of panel ports supported is 61*72=4392, which reduces the number of NCP specifications in the whole network to 61. The number of 400G panel ports that can be supported is reduced to the number of NCPs (61) * the number of 400G panel ports on each NCP (36, that is, 18*2 400G panel ports on each NCP) = 2196.
[0047] The following explanation uses a specific switching chip as an example. Assume the chip has four cores (CORE). Core0 and Core2 each utilize 4T of bandwidth to configure five 800G panel ports, while Core 0 and Core2 each utilize 3.2T of bandwidth to configure four 800G panel ports. Therefore, the entire chip has 18 800G panel ports. Taking the five panel ports on Core 0 as an example, the explanation covers the port reservation method and VOQ resource allocation method under statically reserved port and VOQ resource conditions.
[0048] like Figure 3 As shown, Figure 3 This diagram illustrates a panel port allocation relationship in the prior art. In this diagram, white-filled port 1 on CORE0 is reserved for the first 800G panel port of CORE0; black-filled ports 2 and 3 are reserved for the two 400G panel ports obtained by dividing 800G port 1 into 2; and shaded ports 4 to 7 are reserved for the four 200G panel ports obtained by dividing 800G port 1 into 4. This pattern continues, leading to the following... Figure 3 The diagram shows 35 reserved panel ports. CORE1, CORE2, and CORE3 also reserve ports according to this pattern. Following this pattern, CORE0 and CORE2 each reserve 35 panel ports and 2 internal ports, while CORE1 and CORE3 each reserve 28 panel ports and 2 internal ports. Therefore, the total number of resources reserved for each NCP device for the NCP where the chip is located is the total number of panel ports and internal ports (18 * 7 panel ports + 8 internal ports per NCP) * 8 (each port has 8 VOQs) = 1072.
[0049] It can be seen that, with the total VOQ resources remaining constant, the more ports are split, the more port numbers need to be reserved and the more VOQ resources are consumed. Furthermore, the number of NCPs that can be supported decreases, and the total number of panel ports also decreases. Since not all reserved resources are used, this represents a significant waste of VOQ resources.
[0050] To address the aforementioned issues, this application provides a port information synchronization method applied to a first NCP (Network Container Registry), which is situated within an OPEN DDC (Open DDC Network) structure. The OPEN DDC network also includes a second NCP, such as... Figure 4 As shown, the method includes:
[0051] S401, Obtain local port information.
[0052] The local port information refers to the port information of the panel ports currently possessed by the first NCP. The port information for each port includes the port number, the MODID of the core to which the port resides, and the port speed type. The port speed types include 800G, 400G, and 200G.
[0053] S402. Send first port synchronization information to the second NCP through the CPU topology connection between the first NCP and the second NCP, so that the second NCP updates the VOQ based on the first port synchronization information. The first port synchronization information includes local port information.
[0054] Specifically, the CPU topology connection between the first NCP and the second NCP is a SERDES connection, there is a SERDES connection between the first NCP and the NCF, and there is a SERDES connection between the NCF and the second NCP.
[0055] Using this method, NCPs in the OPEN DDC network can synchronize port information via CPU topology connections, solving the current problem that NCPs cannot synchronize port information via IPC. With port information synchronization between NCPs, changes in NCP port information can be promptly synchronized to other NCPs in the OPEN DDC network, enabling each NCP to update its VOQ in a timely manner. This eliminates the need to pre-allocate VOQs for each NCP for potentially split ports, saving VOQ resources while supporting port splitting requirements and increasing the number of NCPs supported by the entire network.
[0056] In some embodiments of this application, the above-described S402, sending the first port synchronization information to the second NCP through the CPU topology connection between the first NCP and the second NCP, can include the following two implementation methods:
[0057] Method 1: Control the CPU through the driver layer to send the first port synchronization information to the CPU of the second NCP.
[0058] Among them, the device management module of the driver layer of the first NCP can notify the RXTX transceiver module of the driver layer to send the first port synchronization information to the CPU port of the CPU of the second NCP through the SERDES connection.
[0059] Using this method, the first NCP and the second NCP can transmit the first port synchronization information through CPU-to-CPU communication, which solves the problem that NCPs cannot synchronize port information. Moreover, the synchronization of port information can be achieved through the NCP driver layer, requiring minimal modification to the NCP.
[0060] Method 2: The control layer sends BGP packets to the second NCP based on BGP EVPN routing. The extended attributes of the BGP packets carry local port information.
[0061] In the OPEN DDC network, BGP neighbor connections can be established between the CPU ports of each NCP. Then, the first NCP and the second NCP can send BGP packets through BGP EVPN routing, and carry local port information through the extended attributes of the BGP packets.
[0062] This approach, through the cooperation of the BGP protocol in the control layer and the driver layer, solves the problem of the inability of NCPs to synchronize port information.
[0063] In some embodiments of this application, after the first NCP completes initialization, the first NCP creates VOQs for each local port and VOQs for the CPU ports of other NCPs in the OPEN DDC network.
[0064] At this point, the first NCP only needs to create VOQs for the CPU ports of other NCPs, without having to create VOQs for the panel ports of other NCPs, which can reduce the waste of VOQ resources.
[0065] After the first NCP completes initialization, if the CPU topology connection between the first NCP and the second NCP is reachable, the local port information is obtained, and the first port synchronization information is sent to the second NCP based on the CPU topology connection. The local port information includes information on each panel port of the first NCP and information on internal ports other than the CPU port.
[0066] The second NCP can be any NCP other than the first NCP in the OPEN DDC network.
[0067] In this way, the second NCP can create VOQs for each panel port on the first NCP based on the local port information configured after the first NCP is initialized, as well as for the internal ports on the first NCP other than the CPU port. There is no need to create VOQs for panel ports that are not currently configured on the first NCP, which can reduce the waste of VOQ resources.
[0068] After the first NCP completes initialization, it can also receive second port synchronization information sent by the second NCP. This second port synchronization information includes the local port information of the second NCP. The first NCP then records the local port information of the second NCP and encapsulates it into board insertion / removal events. Based on these events, it creates VOQs for each panel port of the second NCP. The local port information of the second NCP includes information about each panel port and information about internal ports other than the CPU port.
[0069] If the first NCP receives the second port synchronization information sent by the second NCP through the driver layer via the CPU port, the device management module of the driver layer of the first NCP obtains the second port synchronization information received from the CPU port and records the local port information of the second NCP. Then, the device management module encapsulates the local port information of the second NCP into a board insertion / removal event and notifies the VOQ processing module of the driver layer of the board insertion / removal event, so that the VOQ processing module creates VOQs for each panel port of the second NCP and VOQs for each internal port other than the CPU port based on the board insertion / removal event.
[0070] If the first NCP receives a BGP message sent by the second NCP, and the BGP message carries the local port information of the second NCP, then the control layer of the first NCP transmits the local port information of the second NCP to the device management module of the driver layer. The device management module of the driver layer then records the local port information of the second NCP. The device management module then encapsulates the local port information of the second NCP into a board insertion / removal event and notifies the VOQ processing module of the driver layer of the board insertion / removal event, so that the VOQ processing module can create VOQs for each panel port of the second NCP and VOQs for each internal port except the CPU port based on the board insertion / removal event.
[0071] Using this method, after the first NCP completes initialization, it can receive the second port synchronization information sent by the second NCP, thereby recording the local port information of the second NCP included in the second port synchronization information, realizing the synchronization of port information. Furthermore, the device management module of the driver layer of the first NCP can encapsulate the local port information of the second NCP into a board insertion / removal event and notify the VOQ processing module of the board insertion / removal event. Since the VOQ processing module of the driver layer of the first NCP itself has the function of creating VOQ based on the board insertion / removal event, there is no need to modify the processing logic of the VOQ processing module, making the implementation relatively simple.
[0072] In this embodiment of the application, the first NCP can perform splitting and merging operations on local ports based on actual needs. The splitting and merging operations include splitting and / or merging operations.
[0073] The splitting operation refers to splitting an 800G panel port into two 400G panel ports by splitting it into two 400G panel ports by splitting it into four 200G panel ports by splitting it into four 400G panel ports by splitting it into four 400G panel ports.
[0074] The merging operation refers to merging two 400G panel ports into one 800G panel port, or merging four 200G panel ports into one 800G panel port.
[0075] Based on the splitting and merging operation of local ports, the above-mentioned S401, obtaining local port information, can be specifically implemented as: obtaining local port information before the splitting and merging operation and local port information after the splitting and merging operation.
[0076] Understandably, the first synchronization information sent by the first NCP to the second NCP includes local port information before the split-merge operation and local port information after the split-merge operation. The second NCP can update the local port information it recorded for the first NCP based on the received local port information and update the VOQ. Specifically, it can create VOQs corresponding to the newly added panel ports after the split-merge operation and delete VOQs corresponding to panel ports that do not exist after the split-merge operation.
[0077] Similarly, if the second NCP performs a split-merge operation on the local port, the method further includes: the first NCP receiving third port synchronization information sent by the second NCP, the third port synchronization information including the local port information before the second NCP performs the split-merge operation and the local port information after the split-merge operation; then the first NCP updates the recorded local port information of the second NCP based on the third port synchronization information; encapsulates the port information included in the third port synchronization information into a port split-merge event; deletes the VOQ corresponding to the panel port that does not exist after the second NCP performs the split-merge operation based on the port split-merge event; and creates the VOQ corresponding to the newly added panel port after the second NCP performs the split-merge operation.
[0078] Specifically, the device management module of the first NCP driver layer can update the local port information of the second NCP recorded locally based on the third port synchronization information, and generate a port splitting and merging event based on the local port information of the second NCP before the splitting and merging operation and the local port information of the second NCP after the splitting and merging operation. The VOQ processing module of the driver layer is notified to delete the VOQ corresponding to the panel port that does not exist after the splitting and merging operation based on the port splitting and merging event, and to create the VOQ corresponding to the newly added panel port.
[0079] In this way, after any NCP performs a splitting and merging operation on a local port, it can synchronize local port information with other NCPs so that other NCPs can correctly update the VOQ of the changed port. The first NCP can also promptly learn about the port splitting and merging status of other NCPs and promptly delete the VOQ of the non-existent panel port and create the VOQ of the newly added panel port, so that subsequent service packets can be forwarded correctly.
[0080] In this embodiment of the application, after the first NCP creates VOQs for each panel port of the second NCP based on the local port information of the second NCP, the method further includes: deleting the local port information of the second NCP when the CPU topology connection between the first NCP and the second NCP becomes unreachable; generating a board removal event based on the local port information of the second NCP; and deleting the VOQs for each panel port of the second NCP based on the board removal event.
[0081] In this way, when two NCPs are unreachable, the VOQ of the panel port of the unreachable NCP can be deleted in time, which can save VOQ resources.
[0082] The following describes the process of the port information synchronization method provided in this application embodiment, taking the synchronization of port information between NCPs through driver layer control of the CPU as an example. Figure 5 As shown, the method includes the following steps:
[0083] S501, NCP initialization.
[0084] During NCP initialization, VOQs are created for all ports on this board and for the CPU ports of other NCPs in the network.
[0085] S502, Detect whether there are any new reachable SERDES connections between the S502 and other NCPs.
[0086] If there is a newly added reachable NCP, then execute S503; if there is a SERDES connection that changes from reachable to unreachable (from existing to non-existent), then execute S506; if there is no change in the SERDES connection, then return to S502.
[0087] Among them, the device management module of the NCP driver layer can detect in real time whether the SERDES connection between other NCPs is reachable.
[0088] S503, Send port synchronization information to other NCPs.
[0089] Specifically, port synchronization information can be sent to newly accessible NCPs. After the device management module in the driver layer determines that there are newly accessible NCPs, it will notify the RXTX transceiver module in the driver layer to send port synchronization information to the CPU ports of other NCPs through CPU transceiver.
[0090] The port synchronization information includes the port number of each local panel port and the port number of each internal port other than the CPU port, the MODID of the CORE to which each panel port belongs, and the speed type of each panel port.
[0091] S504: Receive port synchronization information sent by other NCPs.
[0092] Understandably, once the local NCP and the remote NCP are reachable, they will send port synchronization information to each other. After receiving the port synchronization information, the device management module in the driver layer saves the local port information of the remote NCP carried in the port synchronization information, encapsulates the local port information of the remote NCP into a board insertion / removal event, and then notifies the VOQ processing module in the driver layer to process the board insertion / removal event.
[0093] The principle of single-board plug-in / plug-out events is the same as that of single-board plug-in / plug-out events in traditional chassis switches.
[0094] S505, Perform dynamic VOQ creation.
[0095] The VOQ processing module in the driver layer creates VOQs for each panel port of the remote NCP and VOQs for each internal port except the CPU port based on the board plug-in / plug-out events.
[0096] S506, Delete VOQ.
[0097] When the device management module in the driver layer detects that the reachability of another NCP has changed to inaccessibility, it can delete the local port information of that NCP recorded locally, and notify the VOQ processing module to delete the VOQ corresponding to each panel port of that NCP, as well as the VOQ corresponding to each panel port except the CPU port.
[0098] Optionally, S507 can also be executed after S501.
[0099] S507, Local processing port splitting and merging events.
[0100] Specifically, if the NCP needs to split and merge ports locally, the port module of the driver layer notifies the VOQ processing module to delete the VOQ of the panel port before splitting and create the VOQ of the panel port after splitting.
[0101] S508. Determine if there are other reachable NCPs. If yes, proceed to S509; otherwise, end the process.
[0102] Specifically, the port module of the driver layer notifies the RXTX transceiver module to determine whether there are other reachable NCPs. The RXTX transceiver module can obtain reachable NCP device information from the device management module, thereby determining whether there are other reachable NCPs.
[0103] S509, Send port synchronization information to other reachable NCPs.
[0104] In the presence of other reachable NCPs, the RXTX transceiver module sends port synchronization information to the CPU ports of the other reachable NCPs. This port synchronization information includes local port information before port splitting and merging and local port information after port splitting and merging.
[0105] S510: Each NCP creates and deletes VOQs based on the received port synchronization information.
[0106] Using this method, each NCP can synchronize local port information in real time through CPU-to-CPU packet sending, enabling each NCP to dynamically create and delete VOQs, thereby reducing the waste of VOQ resources while supporting port splitting and merging requirements.
[0107] The following describes the process of the port information synchronization method provided in this application embodiment, taking port information synchronization between NCPs via BGP EVPN routing as an example. Figure 6 As shown, the method includes the following steps:
[0108] S601, NCP initialization.
[0109] During NCP initialization, VOQs are created for all ports on this board and for the CPU ports of other NCPs in the network.
[0110] S602. Detect whether there are any newly added reachable BGP neighbors with other NCPs.
[0111] If there is a newly added reachable NCP, then execute S603; if a BGP neighbor changes from reachable to unreachable (from present to absent), then execute S606; if there is no change in the BGP neighbor, then return to S602.
[0112] The NCP control layer can detect in real time whether BGP neighbors with other NCPs are reachable.
[0113] S603, Send port synchronization information to other NCPs.
[0114] Specifically, port synchronization information can be sent to newly reached NCPs. After the control layer determines that there are newly reached NCPs, it can send port synchronization information through EVPN BGP routing.
[0115] The port synchronization information includes the port number of each local panel port and the port number of the internal ports other than the CPU port, the MODID of the CORE to which each panel port belongs, and the speed type of each panel port.
[0116] S604: Receive port synchronization information sent by other NCPs.
[0117] Understandably, once the BGP neighbor between the local NCP and the remote NCP is reachable, they will send port synchronization information to each other. After receiving the port synchronization information, the local NCP, through the control layer, forwards the information to the device management module in the driver layer. The device management module then saves the local port information of the remote NCP carried in the port synchronization information, encapsulates this information into a board insertion / removal event, and notifies the VOQ processing module in the driver layer to handle the event.
[0118] The principle of single-board plug-in / plug-out events is the same as that of single-board plug-in / plug-out events in traditional chassis switches.
[0119] S605, Perform dynamic VOQ creation.
[0120] The VOQ processing module in the driver layer creates VOQs for each panel port of the remote NCP and port numbers for each internal port except the CPU port based on the board plug-in / plug-out events.
[0121] S606, Delete VOQ.
[0122] After the control layer detects that the BGP neighbor of another NCP has changed from reachable to unreachable, it can notify the device management module of the driver layer to delete the local port information of the NCP recorded locally. The device management module then notifies the VOQ processing module to delete the VOQ corresponding to each panel port of the NCP and the VOQ corresponding to each internal port except the CPU port.
[0123] Optionally, S607 can also be executed after S601.
[0124] S607, Local processing port splitting and merging events.
[0125] Specifically, if the NCP needs to split and merge ports locally, the port module of the driver layer notifies the VOQ processing module to delete the VOQ of the panel port before splitting and create the VOQ of the panel port after splitting.
[0126] S608. Determine if there are other reachable NCPs. If yes, proceed to S609; otherwise, end the process.
[0127] The port module of the driver layer notifies the control layer to determine whether there are other reachable NCPs.
[0128] S609. Send port synchronization information to other reachable NCPs.
[0129] If other reachable NCPs exist, the control layer sends port synchronization information to those NCPs. This port synchronization information includes local port information before and after port splitting and merging.
[0130] S610, each NCP creates and deletes VOQs based on the received port synchronization information.
[0131] Using this method, each NCP can synchronize local port information through EVPN BGP routing, enabling each NCP to dynamically create and delete VOQs, thereby reducing the waste of VOQ resources while supporting port splitting and merging requirements.
[0132] Based on the above-mentioned port message synchronization method, this application provides two methods for splitting and cooperating local ports, which are described below.
[0133] Method A: A combination of dynamic and static allocation.
[0134] The first NCP includes multiple 800G panel ports, each 800G panel port corresponding to a maximum of 3 reserved panel ports, and the port numbers of each 800G panel port and its corresponding reserved panel port are consecutive. Based on this, a splitting and merging operation is performed on the local ports, specifically as follows:
[0135] In response to the 1-to-2 split command for the first panel port among multiple 800G panel ports, the rate attribute of the first panel port is modified to 400G, and the rate attribute of a reserved panel port corresponding to the first panel port is set to 400G.
[0136] In one implementation, if the VOQ for each reserved panel port is not created during the initialization of the first NCP, then the VOQ for that reserved panel port is created after the rate attribute of a reserved panel port corresponding to the first panel port is set to 400G.
[0137] In another implementation, if the VOQ for each reserved panel port has been created during the initialization of the first NCP, then after setting the rate attribute of a reserved panel port corresponding to the first panel port to 400G, the rate scheduling template of the VOQ for that reserved panel port is modified to 400G.
[0138] And / or,
[0139] In response to the 1-to-4 split command for the second panel port among multiple 800G panel ports, the rate attribute of the first panel port is modified to 200G, and the rate attribute of the three reserved panel ports corresponding to the first panel port is set to 200G.
[0140] In one implementation, if the VOQ for each reserved panel port is not created during the initialization of the first NCP, then the VOQ for these three reserved panel ports is created after the rate attribute of the three reserved panel ports corresponding to the first panel port is set to 200G.
[0141] In another implementation, if the VOQ for each reserved panel port has been created during the initialization of the first NCP, then after setting the rate attribute of the three reserved panel ports corresponding to the first panel port to 200G, the rate scheduling template of the VOQ for these three reserved panel ports is modified to 200G.
[0142] And / or,
[0143] In response to the merge command for the third panel port and a reserved panel port corresponding to the third panel port, the rate attribute of the third panel port is modified to 800G, and the rate attribute of the reserved panel port corresponding to the third panel port is deleted. Before the third panel port is split, it belongs to the multiple 800G panel ports.
[0144] In one implementation, after deleting the rate attribute of the reserved panel port corresponding to the third panel port, it is also necessary to delete the VOQ and port number of the reserved panel port.
[0145] In one implementation, after deleting the rate attribute of the reserved panel port corresponding to the third panel port, the rate attribute, port number, and VOQ of the reserved panel port can be retained. Subsequent traffic will not hit the VOQ corresponding to the reserved panel port, thus not affecting the forwarding of service packets. When performing a split-merge operation again in a later stage, if the reserved panel port needs to be used, its rate attribute should be modified according to actual requirements.
[0146] And / or,
[0147] In response to the command to merge the fourth panel port and the three reserved panel ports corresponding to the fourth panel port, the rate attribute of the fourth panel port is modified to 800G, and the rate attributes of the three reserved panel ports corresponding to the fourth panel port are deleted. Before being split, the fourth panel port belonged to multiple 800G panel ports.
[0148] In one implementation, after deleting the rate attributes of the three reserved panel ports corresponding to the third panel port, it is also necessary to delete the VOQ and port number of these three reserved panel ports.
[0149] In one implementation, after deleting the rate attributes of the three reserved panel ports corresponding to the third panel port, the rate attributes, port numbers, and VOQs of these three reserved panel ports can be retained. Subsequent traffic will not hit the VOQs corresponding to these three reserved panel ports, thus not affecting the forwarding of service packets. When performing a split-merge operation again in the future, if these three reserved panel ports need to be used, their rate attributes should be modified according to actual requirements.
[0150] As an example, the first panel port of NCP is port1, and the three reserved panel ports corresponding to the first panel port are port2, port3 and port4. When port1 is not split, it is an 800G panel port. If port1 is split into two, the 800G rate attribute of port1 is deleted, the original port number is reused, and the rate attribute is set to 400G. Then port2 is used as the newly created 400G panel port.
[0151] If port1 is split into 1 and 4, delete the 800G rate attribute of port1, reuse the original port number, set the rate attribute to 200G, and then use port2, port3 and port4 as newly created 200G panel ports.
[0152] Understandably, after splitting, a VOQ is created for each split panel port.
[0153] According to this method, three additional panel ports are statically reserved for each 800G panel port on each NCP (for example, port2, port3, and port4 are reserved for port1). If each NCP device has 18 800G panel ports, the total number of VOQ resources required by each NCP device is (18 * 4 panel ports + 8 internal ports) * 8 (8 VOQs per panel port) = 640. The 64K VOQ resources can provide the specifications of 64K / 640 = 102 NCPs, and the total number of 200G panel ports that can be supported is 102 * 72 = 7344. The number of 800G panel ports that can be split into 1 and 2 (400G) is 102 * 36 = 3672. Compared with the fully static reservation allocation method, this significantly improves the specifications of NCPs and the number of panel ports that can be supported.
[0154] The following will illustrate this with specific examples, such as... Figure 7 As shown, Figure 7 This is a schematic diagram of ports allocated using a combination of dynamic and static allocation methods. After the NCP is initialized, there are four 800G panel ports on the CORE0 of the NCP, namely port1, port5, port9, port13 and port17.
[0155] The three reserved panel ports corresponding to port1 are port2, port3 and port4.
[0156] The three reserved panel ports corresponding to Port5 are port6, port7 and port8.
[0157] The three reserved panel ports corresponding to Port9 are port10, port11, and port12.
[0158] The three reserved panel ports corresponding to Port13 are port14, port15 and port16.
[0159] The three reserved panel ports corresponding to Port17 are port18, port19 and port20.
[0160] Taking the three reserved panel ports corresponding to port1 as an example, port2 is reserved for the second 400G panel port among the two 400G panel ports obtained after splitting the 800G panel port into two.
[0161] After port1 is split into two, the first 400G panel port can reuse the port number of port1, and the 800G attribute of port1 can be changed to the 400G attribute.
[0162] Port3 and Port4 are reserved for the last two 200G panel ports resulting from splitting the 800G panel port into four (1-to-4). Port1 and Port2 retain their original port numbers. After Port1 is split into four (1-to-4), the speed attributes of Port1 and Port2 are modified to 200G. The splitting of other panel ports follows the same pattern. Figure 7 The 20 panel ports are shown.
[0163] The panel ports on CORE1, 2, and 3 of this NCP are reserved in the same way. Based on this, CORE0 and CORE2 are each allocated 20 panel ports and 2 internal ports, while CORE1 and CORE3 are each allocated 16 panel ports and 2 internal ports. Therefore, the total VOQ resources consumed by each NCP are (18 * 4 panel ports + 8 internal ports per NCP) * 8 VOQs per port = 640.
[0164] Method B: Fully Dynamic Allocation Method.
[0165] The first NCP includes multiple 800G panel ports, with the port numbers of these 800G panel ports being consecutive. Based on this, a splitting and merging operation is performed on the local ports, specifically as follows:
[0166] In response to the 1-to-2 split command for the first panel port among multiple 800G panel ports, the rate attribute of the first panel port is modified to 400G, the rate attribute of an idle panel port is set to 400G, the port number of the idle panel port is set to the maximum port number of all panel ports in the first NCP plus 1, and a VOQ corresponding to the idle panel port is created; and / or,
[0167] In response to the command to split the second panel port out of multiple 800G panel ports into four (1-to-4), the rate attribute of the first panel port is modified to 200G, the rate attribute of the three idle panel ports is set to 200G, and the port numbers of the three idle panel ports are set to the maximum port number of each panel port in the first NCP plus 1, 2, and 3 respectively. VOQs corresponding to these three idle panel ports are then created; and / or,
[0168] In response to the command to merge a third panel port and a 400G panel port, the rate attribute of the third panel port is modified to 800G, and the rate attribute, port number, and VOQ of the 400G panel port are deleted. Before being split, the third panel port belonged to multiple 800G panel ports; and / or,
[0169] In response to the command to merge the fourth panel port and the three 400G panel ports, the rate attribute of the fourth panel port is modified to 800G, and the rate attributes, port numbers and VOQ of the three 200G panel ports are deleted. Before being split, the fourth panel port belonged to multiple 800G panel ports.
[0170] The difference between Method B and Method A is that Method B does not require reserving port number resources, but instead dynamically allocates port numbers according to the actual splitting of the panel ports.
[0171] like Figure 8 As shown, before the port splitting operation, NCP's CORE0 had five 800G panel ports, numbered port1 to port5. NCP's CORE0 also had 15 free panel ports. Figure 8 (Not shown in the image).
[0172] When the first 800G panel port is split into two, the speed attribute of port1 is changed to 400G, and the original port number is reused. An idle panel port is then assigned the port number to port6 with a speed attribute of 400G. After the split, assuming port1 and port6 need to be merged later, the VOQ resources of port1 and port6 are released, the speed attribute of port1 is changed to 800G, and a VOQ is created for port1. If each 800G panel port is split into two, the total VOQ resources consumed by each NCP are (18 * 2 panel ports + 8 internal ports) * 8 VOQs per port = 352. 64K VOQ resources can provide 64K / 352 = 186 NCP specifications. When all NCPs in the entire OPEN DDC network are split into two, 186 * 36 = 6696 400G panel ports can be obtained, effectively expanding the supported NCP specifications and the number of panel ports.
[0173] exist Figure 8 Based on this, if the 800G panel port is split into 1-to-4, the port numbers of the resulting panel ports are as follows: Figure 9 As shown, the 800G speed attribute of ports 1 to 5 has been modified to 200G. Ports 6-8 are four 400G panel ports obtained by splitting the same 800G panel port into four 400G panel ports, just like port 1. Similarly, ports 9-11 are four 400G panel ports obtained by splitting the same 800G panel port into four 400G panel ports, and so on. Figure 9 The 20 panel ports are shown.
[0174] Thus, when all NCP panel ports in the OPEN DDC network are split into 1-to-2, it can support 186*36=6696 400G panel ports. It can also support the total number of 200G panel ports that can be split from 800G panel ports into 1-to-4 ports, which is the same as the number in Method A, 102*72=7344. Both can support the specification of 102 NCPs.
[0175] If both 1-to-2 splitting and 1-to-4 splitting are supported, the NCP specifications supported when using method B will dynamically change based on the number of PORT numbers and VOQ resources dynamically occupied in real time, ranging from 102 NCP specifications to 186 NCP specifications.
[0176] If the splitting process exceeds the VOQ resource allocation range, the user will be notified that the current resources are insufficient to support the splitting.
[0177] Corresponding to the above method embodiments, this application also provides a port information synchronization device, which is applied to a first NCP, the first NCP being in an OPEN DDC network, and the OPEN DDC network also including a second NCP; as Figure 10 As shown, the device includes:
[0178] Module 1001 is used to obtain local port information;
[0179] The sending module 1002 is used to send first port synchronization information to the second NCP through the CPU topology connection between the first NCP and the second NCP, so that the second NCP updates the VOQ based on the first port synchronization information, the first port synchronization information including local port information.
[0180] Optionally, the sending module 1002 is specifically used for:
[0181] The CPU is controlled by the driver layer to send the first port synchronization information to the CPU of the second NCP; or...
[0182] The control layer sends BGP packets to the second NCP based on the BGP EVPN route, and the extended attributes of the BGP packets carry local port information.
[0183] Optionally, the device may also include:
[0184] The split and merge module is used to perform split and merge operations on local ports. The split and merge operations include split and / or merge operations.
[0185] The acquisition module is specifically used to acquire local port information before the splitting and merging operation and local port information after the splitting and merging operation. The local port information includes information on each panel port of the first NCP and information on internal ports other than the CPU port.
[0186] Optionally, module 1001 is used specifically for:
[0187] After the first NCP completes initialization, if the CPU topology connection between the first NCP and the second NCP is reachable, the local port information is obtained.
[0188] Optionally, the device may also include:
[0189] Create a module to create VOQs for each local port and the CPU ports of other NCPs in the OPEN DDC network after the first NCP has completed initialization.
[0190] Optionally, the device may also include:
[0191] The receiving module is used to receive the second port synchronization information sent by the second NCP. The second port synchronization information includes the local port information of the second NCP. The local port information of the second NCP includes the information of each panel port of the second NCP and the information of the internal ports other than the CPU port.
[0192] The recording module is used to record the local port information of the second NCP;
[0193] Create a module to encapsulate the local port information of the second NCP into board plug-in / plug-out events, and create VOQs for each panel port of the second NCP and VOQs for each internal port except the CPU port based on the board plug-in / plug-out events.
[0194] Optionally, the device may also include:
[0195] The deletion module is used to delete the local port information of the second NCP when the CPU topology connection between the first NCP and the second NCP becomes unreachable; it generates a board removal event based on the local port information of the second NCP, and deletes the VOQ of each panel port of the second NCP and the VOQ of each internal port except the CPU port based on the board removal event.
[0196] Optionally, the receiving module is also used to receive the third port synchronization information sent by the second NCP. The third port synchronization information includes the local port information before the second NCP performs the split and merge operation on the local port and the local port information after the split and merge operation.
[0197] The recording module is also used to update the local port information of the recorded second NCP based on the third port synchronization information;
[0198] The creation module is also used to encapsulate the port information included in the third port synchronization information into a port split-merge event, delete the VOQ corresponding to the panel port that does not exist after the second NCP performs the split-merge operation based on the port split-merge event, and create the VOQ corresponding to the panel port that is newly added after the second NCP performs the split-merge operation.
[0199] Optionally, the first NCP includes multiple 800G panel ports, each 800G panel port corresponding to a maximum of 3 reserved panel ports, and the port numbers of each 800G panel port and its corresponding reserved panel port are consecutive; the split-merge module is specifically used for:
[0200] In response to the 1-to-2 split command for the first panel port among multiple 800G panel ports, the rate attribute of the first panel port is modified to 400G, and the rate attribute of a reserved panel port corresponding to the first panel port is set to 400G; and / or,
[0201] In response to the command to split the second panel port out of multiple 800G panel ports into four (1-to-4), the rate attribute of the first panel port is modified to 200G, and the rate attributes of the three reserved panel ports corresponding to the first panel port are all set to 200G; and / or,
[0202] In response to the command to merge the third panel port and a corresponding reserved panel port, the rate attribute of the third panel port is modified to 800G. Before being split, the third panel port belonged to multiple 800G panel ports; and / or,
[0203] In response to the command to merge the fourth panel port and the three reserved panel ports corresponding to the fourth panel port, the rate attribute of the fourth panel port is modified to 800G. Before the fourth panel port was split, it belonged to multiple 800G panel ports.
[0204] Optionally, the first NCP includes multiple 800G panel ports, with the port numbers of the multiple 800G panel ports being consecutive; the split-merge module is specifically used for:
[0205] In response to the 1-to-2 split command for the first panel port among multiple 800G panel ports, the rate attribute of the first panel port is modified to 400G, the rate attribute of an idle panel port is set to 400G, the port number of the idle panel port is set to the maximum port number of all panel ports in the first NCP plus 1, and a VOQ corresponding to the idle panel port is created; and / or,
[0206] In response to the command to split the second panel port out of multiple 800G panel ports into four (1-to-4), the rate attribute of the first panel port is modified to 200G, the rate attribute of the three idle panel ports is set to 200G, and the port numbers of the three idle panel ports are set to the maximum port number of each panel port in the first NCP plus 1, 2, and 3 respectively. VOQs corresponding to the three idle panel ports are created; and / or,
[0207] In response to the command to merge a third panel port and a 400G panel port, the rate attribute of the third panel port is modified to 800G, and the rate attribute, port number, and VOQ of the 400G panel port are deleted. Before being split, the third panel port belonged to multiple 800G panel ports; and / or,
[0208] In response to the command to merge the fourth panel port and the three 200G panel ports, the rate attribute of the fourth panel port is modified to 800G, and the rate attributes, port numbers and VOQ of the three 200G panel ports are deleted. Before being split, the fourth panel port belonged to multiple 800G panel ports.
[0209] This application also provides an electronic device, such as... Figure 11 As shown, it includes a processor 1101, a communication interface 1102, a memory 1103, and a communication bus 1104, wherein the processor 1101, the communication interface 1102, and the memory 1103 communicate with each other through the communication bus 1104.
[0210] Memory 1103 is used to store computer programs;
[0211] The processor 1101 is used to execute the program stored in the memory 1103 and implement the method steps in the above method embodiments.
[0212] The communication bus mentioned in the above electronic devices can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This communication bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used to represent it in the diagram, but this does not mean that there is only one bus or one type of bus.
[0213] The communication interface is used for communication between the aforementioned electronic devices and other devices.
[0214] The memory may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Optionally, the memory may also be at least one storage device located remotely from the aforementioned processor.
[0215] The processors mentioned above can be general-purpose processors, including central processing units (CPUs), network processors (NPs), etc.; they can also be digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0216] In another embodiment provided in this application, a computer-readable storage medium is also provided, which stores a computer program that, when executed by a processor, implements the steps of any of the above-described port information synchronization methods.
[0217] In another embodiment provided in this application, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to execute any of the port information synchronization methods described above.
[0218] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0219] The various embodiments in this specification are described in a related manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the apparatus embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the method embodiments.
[0220] The above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application are included within the scope of protection of this application.
Claims
1. A method for synchronizing port information, characterized in that, The method is applied to a first NCP, which is located in an OPEN DDC network, and the OPEN DDC network further includes a second NCP; the method includes: Get local port information; The CPU topology connection between the first NCP and the second NCP sends first port synchronization information to the second NCP, so that the second NCP updates the VOQ based on the first port synchronization information, the first port synchronization information including the local port information.
2. The method according to claim 1, characterized in that, The step of sending the first port synchronization information to the second NCP through the CPU topology connection between the first NCP and the second NCP includes: The CPU is controlled by the driver layer to send the first port synchronization information to the CPU of the second NCP; or... The control layer sends BGP packets to the second NCP based on BGP EVPN routing, and the extended attributes of the BGP packets carry the local port information.
3. The method according to claim 1 or 2, characterized in that, Before obtaining the local port information, the method further includes: Perform a split-and-merge operation on the local port, the split-and-merge operation including split and / or merge operations; The process of obtaining local port information includes: Obtain the local port information before and after the split-merge operation.
4. The method according to claim 1 or 2, characterized in that, The process of obtaining local port information includes: After the first NCP completes initialization, if the CPU topology connection between the first NCP and the second NCP is reachable, the local port information is obtained. The local port information includes information on each panel port of the first NCP and information on internal ports other than the CPU port.
5. The method according to claim 4, characterized in that, The method further includes: After the first NCP completes initialization, create VOQs for each local port and VOQs for the CPU ports of other NCPs in the OPEN DDC network.
6. The method according to claim 1, characterized in that, The method further includes: Receive the second port synchronization information sent by the second NCP. The second port synchronization information includes the local port information of the second NCP. The local port information of the second NCP includes the information of each panel port of the second NCP and the information of internal ports other than the CPU port. Record the local port information of the second NCP; The local port information of the second NCP is encapsulated into a single-board plug-in / plug-out event. Based on the single-board plug-in / plug-out event, VOQs for each panel port of the second NCP and VOQs for each internal port except the CPU port are created.
7. The method according to claim 6, characterized in that, After creating the VOQs for each panel port of the second NCP and the VOQs for each internal port other than the CPU port based on the single-board insertion / removal event, the method further includes: When the CPU topology connection between the first NCP and the second NCP becomes unreachable, delete the local port information of the second NCP; A board removal event is generated based on the local port information of the second NCP. Based on the board removal event, the VOQ of each panel port of the second NCP and the VOQ of each internal port except the CPU port are deleted.
8. The method according to claim 6, characterized in that, After creating the VOQs for each panel port of the second NCP and the VOQs for each internal port other than the CPU port based on the single-board insertion / removal event, the method further includes: Receive the third port synchronization information sent by the second NCP, the third port synchronization information including the local port information before the second NCP performs the split and merge operation on the local port and the local port information after the split and merge operation; The local port information of the second NCP that has been recorded is updated based on the third port synchronization information; The port information included in the third port synchronization information is encapsulated into a port split-merge event. Based on the port split-merge event, the VOQ corresponding to the panel port that does not exist after the split-merge operation of the second NCP is deleted, and the VOQ corresponding to the newly added panel port after the split-merge operation of the second NCP is created.
9. The method according to claim 3, characterized in that, The first NCP includes multiple 800G panel ports, each 800G panel port corresponds to a maximum of 3 reserved panel ports, and the port numbers of each 800G panel port and its corresponding reserved panel port are consecutive. The operation of splitting and merging local ports includes: In response to the 1-to-2 split command for the first panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 400G, and the rate attribute of a reserved panel port corresponding to the first panel port is set to 400G; and / or, In response to the 1-to-4 split command for the second panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 200G, and the rate attributes of the three reserved panel ports corresponding to the first panel port are all set to 200G; and / or, In response to the merge command for the third panel port and a reserved panel port corresponding to the third panel port, the rate attribute of the third panel port is modified to 800G. Before being split, the third panel port belonged to the plurality of 800G panel ports. And / or, In response to the command to merge the fourth panel port and the three reserved panel ports corresponding to the fourth panel port, the rate attribute of the fourth panel port is modified to 800G. Before being split, the fourth panel port belonged to the plurality of 800G panel ports.
10. The method according to claim 3, characterized in that, The first NCP includes multiple 800G panel ports, and the port numbers of the multiple 800G panel ports are consecutive; the local port splitting and merging operation includes: In response to the 1-to-2 split command for the first panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 400G, the rate attribute of an idle panel port is set to 400G, the port number of the idle panel port is set to the maximum port number of all panel ports in the first NCP plus 1, and a VOQ corresponding to the idle panel port is created; and / or, In response to the 1-to-4 split command for the second panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 200G, the rate attribute of the three idle panel ports is set to 200G, and the port numbers of the three idle panel ports are respectively set to the maximum port number of each panel port in the first NCP plus 1, plus 2, and plus 3, respectively, and VOQs corresponding to the three idle panel ports are created; and / or, In response to a command to merge a third panel port and a 400G panel port, the rate attribute of the third panel port is modified to 800G, and the rate attribute, port number, and VOQ of the 400G panel port are deleted. The third panel port previously belonged to the plurality of 800G panel ports; and / or, In response to the command to merge the fourth panel port and the three 200G panel ports, the rate attribute of the fourth panel port is modified to 800G, and the rate attribute, port number and VOQ of the three 200G panel ports are deleted. Before being split, the fourth panel port belonged to the multiple 800G panel ports.
11. A port information synchronization device, characterized in that, The device is applied to a first NCP, which is located in an OPEN DDC network, and the OPEN DDC network further includes a second NCP; the device includes: The acquisition module is used to obtain local port information; The sending module is configured to send first port synchronization information to the second NCP through the CPU topology connection between the first NCP and the second NCP, so that the second NCP updates the VOQ based on the first port synchronization information, wherein the first port synchronization information includes the local port information.
12. The apparatus according to claim 11, characterized in that, The sending module is specifically used for: The CPU is controlled by the driver layer to send the first port synchronization information to the CPU port of the second NCP; or... The control layer sends BGP packets to the second NCP based on BGP EVPN routing, and the extended attributes of the BGP packets carry the local port information.
13. The apparatus according to claim 11 or 12, characterized in that, The device further includes: The split-merge module is used to perform split-merge operations on local ports, the split-merge operations including splitting and / or merging operations; The acquisition module is specifically used to acquire local port information before the split and merge operation and local port information after the split and merge operation.
14. The apparatus according to claim 11 or 12, characterized in that, The acquisition module is specifically used for: After the first NCP completes initialization, if the CPU topology connection between the first NCP and the second NCP is reachable, the local port information is obtained. The local port information includes information on each panel port of the first NCP and information on internal ports other than the CPU port.
15. The apparatus according to claim 14, characterized in that, The device further includes: A creation module is used to create VOQs for each local port and the CPU ports of other NCPs in the OPENDDC network after the first NCP has completed initialization.
16. The apparatus according to claim 11, characterized in that, The device further includes: The receiving module is used to receive the second port synchronization information sent by the second NCP. The second port synchronization information includes the local port information of the second NCP. The local port information of the second NCP includes the information of each panel port of the second NCP and the information of internal ports other than the CPU port. A recording module is used to record the local port information of the second NCP; A module is created to encapsulate the local port information of the second NCP into board plug-in / plug-out events, and to create VOQs for each panel port of the second NCP and VOQs for each internal port except the CPU port based on the board plug-in / plug-out events.
17. The apparatus according to claim 16, characterized in that, The device further includes: The deletion module is used to delete the local port information of the second NCP when the CPU topology connection between the first NCP and the second NCP becomes unreachable; generate a board removal event based on the local port information of the second NCP; and delete the VOQ of each panel port and the VOQ of each internal port other than the CPU port of the second NCP based on the board removal event.
18. The apparatus according to claim 16, characterized in that, The receiving module is further configured to receive third port synchronization information sent by the second NCP, the third port synchronization information including local port information before the second NCP performs the split and merge operation on the local port and local port information after the split and merge operation. The recording module is also used to update the recorded local port information of the second NCP based on the third port synchronization information; The creation module is further configured to encapsulate the port information included in the third port synchronization information into a port split-merge event, delete the VOQ corresponding to the panel port that does not exist after the second NCP performs the split-merge operation based on the port split-merge event, and create the VOQ corresponding to the panel port that is newly added after the second NCP performs the split-merge operation.
19. The apparatus according to claim 13, characterized in that, The first NCP includes multiple 800G panel ports, each 800G panel port corresponding to a maximum of 3 reserved panel ports, and the port numbers of each 800G panel port and its corresponding reserved panel port are consecutive; the splitting and merging module is specifically used for: In response to the 1-to-2 split command for the first panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 400G, and the rate attribute of a reserved panel port corresponding to the first panel port is set to 400G; and / or, In response to the 1-to-4 split command for the second panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 200G, and the rate attributes of the three reserved panel ports corresponding to the first panel port are all set to 200G; and / or, In response to the merge command for the third panel port and a reserved panel port corresponding to the third panel port, the rate attribute of the third panel port is modified to 800G. Before being split, the third panel port belonged to the plurality of 800G panel ports. And / or, In response to the command to merge the fourth panel port and the three reserved panel ports corresponding to the fourth panel port, the rate attribute of the fourth panel port is modified to 800G. Before being split, the fourth panel port belonged to the plurality of 800G panel ports.
20. The apparatus according to claim 13, characterized in that, The first NCP includes multiple 800G panel ports, and the port numbers of the multiple 800G panel ports are consecutive; the splitting and merging module is specifically used for: In response to the 1-to-2 split command for the first panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 400G, the rate attribute of an idle panel port is set to 400G, the port number of the idle panel port is set to the maximum port number of all panel ports in the first NCP plus 1, and a VOQ corresponding to the idle panel port is created; and / or, In response to the 1-to-4 split command for the second panel port among the plurality of 800G panel ports, the rate attribute of the first panel port is modified to 200G, the rate attribute of the three idle panel ports is set to 200G, and the port numbers of the three idle panel ports are respectively set to the maximum port number of each panel port in the first NCP plus 1, plus 2, and plus 3, respectively, and VOQs corresponding to the three idle panel ports are created; and / or, In response to the command to merge a third panel port and a 400G panel port, the rate attribute of the third panel port is modified to 800G, and the rate attribute, port number and VOQ of the 400G panel port are deleted. The third panel port belonged to the plurality of 800G panel ports before being split. And / or, In response to the command to merge the fourth panel port and the three 200G panel ports, the rate attribute of the fourth panel port is modified to 800G, and the rate attribute, port number and VOQ of the three 200G panel ports are deleted. Before being split, the fourth panel port belonged to the multiple 800G panel ports.
21. 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-10.
22. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the method described in any one of claims 1-10.
Citation Information
Patent Citations
Decentralized network equipment system, decentralized network construction method and equipment
CN118921268A
Managing virtual output queues
US20210006509A1