Network redundancy service

The network redundancy service addresses the limitations of current LACP protocols by establishing redundant links and monitoring physical functions within the Telecom domain, ensuring efficient load-sharing and redundancy without the need for specific Cloud infrastructure.

WO2025081446A1PCT designated stage expired Publication Date: 2025-04-24ALCATEL LUCENT SHANGHAI BELL CO LTD +1

Patent Information

Application Number
PCT/CN2023/125551
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-20
Publication Date
2025-04-24

AI Technical Summary

Technical Problem

Current Link Aggregation Control Protocol (LACP) limitations prevent multi-link aggregation on top of a physical switch port for load-sharing and redundancy in the Telecom domain, especially with SRIOV introduced into cloud environments.

Method used

A network redundancy service is provided, which includes establishing redundant links between servers and leaf devices using physical functions, monitoring the states of these physical functions, and upon detecting a failure, transmitting failure indications to an interface device. This interface device identifies affected virtual functions and communicates this information to client devices, which then disable the failed virtual functions.

Benefits of technology

This solution enables flexible and efficient network redundancy by allowing multiple LACP links on shared switch ports, ensuring bandwidth increase and avoiding single point failures without requiring specific Cloud infrastructure support.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023125551_24042025_PF_FP_ABST
    Figure CN2023125551_24042025_PF_FP_ABST
Patent Text Reader

Abstract

Example embodiments of the present disclosure relate to methods, apparatuses, a system and storage medium for a network redundancy service. In a method, a master device monitors states of a plurality of physical functions (PFs) of a server where the plurality of PFs is used to enable a plurality of redundant links between the server and a plurality of leaf devices. If a failure of a target PF of the plurality of PFs is detected, the master device transmits an indication of this failure to an interface device. The interface device identifies a list of failed second virtual functions (VFs) which is mapped to the target PF. The interface device transmits the second information to a client device. If a target second VF of a plurality of second VFs of the client device is included in the list, the client device disables the target second VF.
Need to check novelty before this filing date? Find Prior Art

Description

NETWORK REDUNDANCY SERVICE

[0001] FIELDS

[0002] Various example embodiments of the present disclosure generally relate to the field of telecommunication and in particular, to methods, apparatuses, system and computer readable storage medium for a network redundancy service.BACKGROUND

[0003] As single-root input / output (IO) virtualization (SRIOV) is introduced into cloud (such as Openstack or Kubernetes (K8S) ) , a physical function (PF) on a host server may attach to hundreds of virtual functions (VFs) . In Telecom domain, a virtual machine (VM) , a pod, or a container needs link level redundancy to increase a bandwidth and avoid a single point failure. Link Aggregation Control Protocol (LACP) cannot support multi-Link aggregation on top of a physical switch port for the purpose of load-sharing and redundancy. This is a limitation of current LACP protocol (such as 802.1ad) .SUMMARY

[0004] In a first aspect of the present disclosure, there is provided a method at a master device of a network redundancy service. The method comprises: establishing a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server; monitoring states of the plurality of physical functions; and in response to detecting a failure of a target physical function of the plurality of physical functions, transmitting an indication of the failure of the target physical function to an interface device of the network redundancy service.

[0005] In a second aspect of the present disclosure, there is provided a method at an interface device of a network redundancy service. The method comprises: receiving, from a master device of a plurality of master devices of the network redundancy service, an indication of a failure of a target physical function of a plurality of physical functions of a server, the plurality of physical functions being used to enable a plurality of redundant links between the server and a plurality of leaf devices; identifying a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; and transmitting, to the at least one client  device, second information about the list of failed second virtual functions.

[0006] In a third aspect of the present disclosure, there is provided a method at a client device. The method comprises: activating, on a plurality of second virtual functions of the client device, a plurality of redundant links between a plurality of physical functions of a server and a plurality of leaf devices; receiving, from an interface device of a network redundancy service, second information about a list of failed second virtual functions; and based on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disabling the target second virtual function.

[0007] In a fourth aspect of the present disclosure, there is provided an apparatus. The apparatus comprises at least one processor and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform at least the method according to the first, second or third aspect.

[0008] In a fifth aspect of the present disclosure, there is provided an apparatus. The apparatus comprises means for establishing a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server; means for monitoring states of the plurality of physical functions; and means for in response to detecting a failure of a target physical function of the plurality of physical functions, transmitting an indication of the failure of the target physical function to an interface device of the network redundancy service.

[0009] In a sixth aspect of the present disclosure, there is provided an apparatus. The apparatus comprises means for receiving, from a master device of a plurality of master devices of the network redundancy service, an indication of a failure of a target physical function of a plurality of physical functions of a server, the plurality of physical functions being used to enable a plurality of redundant links between the server and a plurality of leaf devices; means for identifying a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; and means for transmitting, to the at least one client device, second information about the list of failed second virtual functions.

[0010] In a seventh aspect of the present disclosure, there is provided an apparatus. The apparatus comprises means for activating, on a plurality of second virtual functions of the client device, a plurality of redundant links between a plurality of physical functions of a  server and a plurality of leaf devices; means for receiving, from an interface device of a network redundancy service, second information about a list of failed second virtual functions; and means for based on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disabling the target second virtual function.

[0011] In an eight aspect of the present disclosure, there is provided a computer readable medium. The computer readable medium comprises instructions stored thereon for causing an apparatus to perform at least the method according to the first, second or third aspect.

[0012] In a ninth aspect of the present disclosure, there is provided a method of a network redundancy service. The method comprises: establishing, by a master device, a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server; monitoring, by the master device, states of the plurality of physical functions; in response to detecting a failure of a target physical function of the plurality of physical functions, transmitting, by the master device, an indication of the failure of the target physical function to an interface device; in response receiving, by the interface device, from the master device, the indication of the failure of the target physical function, identifying, by the interface device, a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; transmitting, by the interface device, to a client device, second information about the list of failed second virtual functions; after activating, by the client device, on a plurality of second virtual functions of the client device, the plurality of redundant links, in response to receiving, by the client device, the second information from the interface device, determining, by the client device, whether a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions; and based on a determination that the target second virtual function is included in the list of failed second virtual functions, disabling, by the client device, the target second virtual function.

[0013] In a tenth aspect of the present disclosure, there is provided a system for a network redundancy service. The system comprises: a plurality of master devices, a master device of the plurality of master devices configured to: establish a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server; monitor states of the plurality of physical functions; and in response to detecting a failure  of a target physical function of the plurality of physical functions, transmit an indication of the failure of the target physical function to an interface device; the interface device configured to: receive, from the master device of the plurality of master devices, the indication of the failure of the target physical function; identify a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; and transmit, to the at least one client device, second information about the list of failed second virtual functions; and a plurality of client devices, a client device of the plurality of client devices configured to: activate, on a plurality of second virtual functions of the client device, the plurality of redundant links; receive, from the interface device, the second information about the list of failed second virtual functions; and based on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disable the target second virtual function.

[0014] It is to be understood that the Summary section is not intended to identify key or essential features of embodiments of the present disclosure, nor is it intended to be used to limit the scope of the present disclosure. Other features of the present disclosure will become easily comprehensible through the following description.BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Some example embodiments will now be described with reference to the accompanying drawings, where:

[0016] FIGS. 1A to 1C illustrates example system architectures for a network redundancy service in accordance with some example embodiments of the present disclosure.

[0017] FIG. 2 illustrates a signaling diagram of an example process 200 for a network redundancy service in accordance with some example embodiments of the present disclosure;

[0018] FIG. 3 illustrate an overall status machine of a network redundancy service in accordance with some example embodiments of the present disclosure;

[0019] FIG. 4A illustrates an example process of client registration at the service API 304 in accordance with some example embodiments of the present disclosure;

[0020] FIG. 4B illustrates an example process of link registration, identification and  tracking in accordance with some example embodiments of the present disclosure;

[0021] FIG. 5 illustrates a flowchart of an example method for a network redundancy service at a master device in accordance with some example embodiments of the present disclosure;

[0022] FIG. 6 illustrates a flowchart of an example method for a network redundancy service at an interface device in accordance with some example embodiments of the present disclosure;

[0023] FIG. 7 illustrates a flowchart of an example method for a network redundancy service at a client device in accordance with some example embodiments of the present disclosure;

[0024] FIG. 8 illustrates a flowchart of an example method for a network redundancy service in accordance with some example embodiments of the present disclosure;

[0025] FIG. 9 illustrates a simplified block diagram of a device that is suitable for implementing example embodiments of the present disclosure; and

[0026] FIG. 10 illustrates a block diagram of an example computer readable medium in accordance with some example embodiments of the present disclosure.

[0027] Throughout the drawings, the same or similar reference numerals represent the same or similar element.DETAILED DESCRIPTION

[0028] Principle of the present disclosure will now be described with reference to some example embodiments. It is to be understood that these embodiments are described only for the purpose of illustration and help those skilled in the art to understand and implement the present disclosure, without suggesting any limitation as to the scope of the disclosure. Embodiments described herein can be implemented in various manners other than the ones described below.

[0029] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skills in the art to which this disclosure belongs.

[0030] References in the present disclosure to “one embodiment, ” “an embodiment, ” “an example embodiment, ” and the like indicate that the embodiment described may  include a particular feature, structure, or characteristic, but it is not necessary that every embodiment includes the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

[0031] It shall be understood that although the terms “first, ” “second” and the like may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of example embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.

[0032] As used herein, “at least one of the following: <a list of two or more elements>” and “at least one of <a list of two or more elements>” and similar wording, where the list of two or more elements are joined by “and” or “or” , mean at least any one of the elements, or at least any two or more of the elements, or at least all the elements.

[0033] As used herein, unless stated explicitly, performing a step “in response to A” does not indicate that the step is performed immediately after “A” occurs and one or more intervening steps may be included.

[0034] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a” , “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” , “comprising” , “has” , “having” , “includes” and / or “including” , when used herein, specify the presence of stated features, elements, and / or components etc., but do not preclude the presence or addition of one or more other features, elements, components and / or combinations thereof.

[0035] As used in this application, the term “circuitry” may refer to one or more or all of the following:

[0036] (a) hardware-only circuit implementations (such as implementations in only analog and / or digital circuitry) and

[0037] (b) combinations of hardware circuits and software, such as (as applicable) :

[0038] (i) a combination of analog and / or digital hardware circuit (s) with software / firmware and

[0039] (ii) any portions of hardware processor (s) with software (including digital signal processor (s) ) , software, and memory (ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions) and

[0040] (c) hardware circuit (s) and or processor (s) , such as a microprocessor (s) or a portion of a microprocessor (s) , that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.

[0041] This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and / or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.

[0042] As described above, as SRIOV is introduced into cloud, a PF on a host server may attach to hundreds of VFs. However, current LACP protocol cannot support multi-Link aggregation on top of a physical switch port for the purpose of load-sharing and redundancy.

[0043] Example embodiments of the present disclosure propose a network redundancy scheme. This scheme provides network redundancy as a service. With this scheme, a network redundancy solution is split into a centralized control plane and a distributed data plane. The data plane is created between PFs / VFs on a server such as a host or a cloud host and leaf devices such as switch (es) or routers. The control plane is managed with an interface device such as a service Application Programming Interface (API) along with a  master device. Using the network redundancy service, states of PFs is mapped to VFs, which is synchronized to a client device.

[0044] This scheme does not require a Cloud infrastructure to enable a specific LACP capacity to support multiple LACP links on shared switch ports, which is more flexible and efficient.

[0045] FIG. 1A illustrates an example system architecture 100 for a network redundancy service according to some example embodiments of the present disclosure.

[0046] The system architecture 100 comprises a server 105 and leaf devices 110-1 and 110-2 (collectively referred to as leaf devices 110) . The server 105 may establish redundant links 115-1 and 115-2 with the leaf devices 110-1 and 110-2 via physical functions (PFs) 120-1 and 120-2 (such as physical network interface cards (NICs) ) for load balancing and redundancy. In some example embodiments, the server 105 may comprise a host or a cloud host. The leaf devices 110-1 and 110-2 may comprise switches or routers. The link from the server 105 to the leaf devices 110 may be referred to as uplink.

[0047] The system architecture 100 further comprises a client device 125 which may utilize the bonded redundant links 115-1 and 115-2. The client device 125 may comprise a physical or virtual device. In some example embodiments, the client device 125 may comprise a virtual machine, a pod or a container with VFs 130-1 and 130-2 (such as a virtual NICs) which may be mapped to the PFs 120-1 and 120-2 of the server 105 to activate the bonded redundant links 115-1 and 115-2.

[0048] In the system architecture 100, a network redundancy (NETRED) operator 135, which may operate as a service provider for a network redundancy service, includes a master device 140 (also called “NETRED Master” ) and an interface device 145 which may be a service API or an API. The master device 140 and / or the interface device 145 may be implemented in hardware, software, firmware, and / or any combination thereof. In this example, as shown in FIG. 1A, the master device 140 and the interface device 145 are deployed on the server 120. In some example embodiments, the master device 140 and the interface device 145 may be implemented in a circuitry or software module of the server 105. It is also possible that the master device 140 and / or the interface device 145 are deployed in a device separate from the server 105.

[0049] In a network redundancy control plane, the master device 140 may operate under a control of the interface device 145. The master device 110 may establish redundant links toward the leaf devices 110-1 and 110-2 using VFs 150-1 and 150-2 of the master device 140. Alternatively, or in addition, the master device 140 may establish the redundant links using the PFs 120-1 and 120-2 of the server 105. For example, the PFs 120-1 and 120-2 of the server 105 may be mapped to the master device 140, e.g., using K8S, such that the master device 140 can establish a path with the leaf devices 110-1 and 110-2, as shown in a system architecture 165 in FIG. 1B.

[0050] The master device 130 may monitor states (or status) of the PFs 120-1 and 120-2 of the server 105 (e.g., NICs used by Network Virtualization) , e.g., from an operating system (OS) 155 of the server 105 and synchronize the states to the interface device 145. In an example, in the example embodiments, a PF 120-1 or 120-2 of the server 105 operates as an NIC and the redundant links 115-1 and 115-2 are towards the leaf devices 110-1 and 110-2, the master device 140 may report node uplink NIC status to the interface device 145.

[0051] In some example embodiments, the master device 140 may gather PF-VF mapping relationship on the server 105 and report it to the interface device 145. In some example embodiments, the master device 140 may provide a fast failure detection of external links toward the leaf devices 110-1 and 110-2 with layer 2 (L2)  / layer 3 (L3) detection, using Link Aggregation Control Protocol (LACP) and Bidirectional Forwarding Detection (BFD) , and / or the like. In some example embodiments, the master device 140 may control states of VFs 150-1 and 150-2 (up or down) , depends on privilege that is given by an administrator.

[0052] The interface device 145 may provide a cluster-level network redundancy service API entry to the client device 125 and other client devices (not shown) , which may operate as subscribers of the network redundancy service, via a control link 160 for network redundancy link registration. The interface device 145 may act as a control plane to distribute external network redundancy information to all subscribers. In some example embodiments, the interface device 145 may store and maintain information about the client device 145, for example, including an identification and / or name of the client device 145, addresses and / or names of the VFs 130-1 and 130-2 such as medium access control (MAC) addresses and names of virtual NICs of the client device 145.

[0053] It is to be understood that the devices are shown in FIGS. 1A for the purpose of illustration, without suggesting any limitation. Any other devices may be deployed in the system architecture 100. For example, the system architecture 100 may comprise one or more spine devices that can communicate with the leaf devise 110. The communications among these devices may utilize any suitable technologies and follow any suitable protocols. The scope of the present disclosure will not be limited in this regard.

[0054] It is also to be understood that the numbers and types of devices as shown in FIGS. 1A are only illustrative, but not limited. Any numbers of servers, leaf devices, master devices and interface devices may be included in a system architecture for the network redundancy service.

[0055] FIG. 1C shows another example system architecture 170 for the network redundancy service in accordance with some example embodiments of the present disclosure.

[0056] The system architecture 170 comprises a plurality of servers 105-1, 105-2, …, 105-N which may be deployed on Cloud. Each server 105 may have redundant links with any number of leaf devices using the corresponding number of PFs. N represents any positive integer. Herein, the servers 105-1, 105-2, …, 105-N will individually or collectedly be referred to as server (s) 105. In this example, each server 105 has 2 different NICs / Ports used as PFs, to provide redundant connections toward the leaf devices 110-1 and 110-2 such as upstream leaf switch (es) . The PFs of one or more servers 105 may have or have no LACP links toward upstream the leaf devices 110-1 and 110-2. The leaf devices 110-1 and 110-2 may be configured as LACP Link Aggregation (LAG) port-channel or Multi-Chassis LAG, depending on system designs.

[0057] In the system architecture 170, each of the servers 105 may be configured with an associated master device 140. One or more master devices may be controlled by an interface device 145. In addition, a plurality of client devices 125-1, …, 125-M (individually or collectedly referred to as client device (s) 125) may attach to a server 105 and subscribe to a network redundancy service. M represents any positive integer. In this case, the network redundancy service may be provided to the plurality of client devices 125 via control links 160.

[0058] FIG. 2 shows a signaling diagram of an example process 200 for a network redundancy service in accordance with some example embodiments of the present  disclosure. For the purpose of discussion, the process 200 will be described with reference to in FIG. 1A.

[0059] In the process 200, a Network Redundancy (NETRED) Service may be introduced as a cluster level service to Cloud (e.g., K8S) , which includes an interface device 145 (such as a NETRED service API) and a master device 140 (such as a NETRED Master) . The NETRED Control plane, including the interface device 145 and the master device 140, is responsible for redundancy link control plane setup, failure detection, isolation, notification and recovery.

[0060] As shown in FIG. 2, the master device 140 establishes (205) a plurality of redundant links with a plurality of leaf devices 110 using a plurality of PFs of the server 105. In some example embodiments, the master device 140 may establish (205) the plurality of redundant links with the plurality of leaf devices 110 on the plurality of PFs of the server 105. In some other example embodiments, the master device 140 may establish (205) the plurality of redundant links on a plurality of VFs (referred to as “first virtual functions” or “first VFs” ) of the master device 140. A first VF of the plurality of first VFs is mapped to a PF of the plurality of PFs.

[0061] In an example, the server 105 may not have the redundant links. In this case, the master device 140 may either be deployed with VFs from each PF on the server 105, or attach the PFs of the server 105, e.g., using “hostNetwork: true” , depending on system privilege and NIC limitation. As another example, the server 105 may already have redundant links (e.g., LACP links) with the leaf devices 110. In this example, the master device 140 may be deployed on the server 105, for example, as deamonset. In this case, the master device 140 may establishes (205) a plurality of redundant links with a plurality of leaf devices 110 using a plurality of PFs of the server 105.

[0062] The master device 140 monitors (210) states of the plurality of PFs of the spec device 105. If the master device 140 detects a failure of a target PF of the plurality of PFs of the server 105, the master device 140 transmits (215) an indication of the failure of the target PF to the interface device 145. In an example, if the master device 140 detects a failure of a target redundant link of the plurality of redundant links where the target redundant link corresponds to the target physical function, the master device 140 may determine that the target physical function is failed. In another example, if the master device 140 detects a data transmission failure on the target PF, the master device 140 may  determine that the target PF is failed.

[0063] For example, in the embodiments where the server 105 operates as a cloud host with physical NICs acting as the PFs and the leaf devices 110 operate as leaf switches, the master device 140 may monitor host NICs and uplink status. Then, the master device 140 may update the host NIC states and a network redundancy state to the interface device 145.

[0064] In some example embodiments, in the case that the redundant links between the master device 140 and the leaf devices 110 are established on the first VFs of the master device 140, after detecting the failure of the target PF, the master device 140 may control a state of a first VF of the plurality of first VFs to be down where the first VF set to be down corresponds to the target PF. Such state control may be implemented depending on the privilege of the master device 140 that may be given or set by the administrator.

[0065] A client device 125 can utilize the network redundancy service through interactions with the interface device 145. In some example embodiments, the client device 125 may subscribe to the network redundancy service. In an example, the client device 125 may transmit, to the interface device 145, a request for the network redundancy service. The request indicates first information about the client device.

[0066] The first information may include any information related to the client device 145. In some example embodiments, the first information may comprise an identification of the client device 125 such as a universally unique identifier (UUID) , a name of the client device 125 such as a user name, addresses of a plurality of second VFs of the client device 125 such as MAC addresses, and / or names of the plurality of second VFs of the client device 125 such as NIC names. The first information about the client device 125 may be stored or updated to a database of the interface device 145.

[0067] After transmitting the request to the interface device 145, the client device 125 may establish a control link with the interface device 145. For example, once the client device 125 has been identified by the interface device 145 and negotiation between the client device 125 and the interface device 145 is done, the control plane is up. The control link setup or creation may be independent of the server 105.

[0068] In some example embodiments, the interface device 145 may monitor a state of the control link with the client device 125. If a failure of the control link is detected, the  interface device 145 may remove the control link. The state of the control link may be monitored based on a monitoring timer and / or a report of a state of the control link from the client device 125.

[0069] In an example, the client device 125 may transmit, to the interface device 145, a report of a state of the control link. Based on the report, the interface device 145 may determine whether the control link is failed. In some example embodiments, a monitoring timer may be set. For example, the timer may be used to ensure the interface device 145 may monitor a state of the client device 125.

[0070] As an example, if the interface device 145 does not receive signals from the client device 125 after the timer is expired, the interface device 145 may determine that the control link is failed. Once the client device 125 is down for some reasons, the state of the client device 125 may be changed to be down and the control link may be removed. In this way, the control plane connection may last till the link is removed or the client device 125 goes down. During the downtime of the interface device 145, for example, in case that the interface device 145 does not make a response to a message transmitted by the client device 125, the client device 125 may maintain the current state till a connection with the interface device 145 is back.

[0071] On the basis of the network redundancy service, as shown in FIG. 2, the client device 125 activates (225) , on a plurality of VFs (referred to as “second virtual functions” or “second VFs” ) of the client device 125, a plurality of redundant links between a plurality of PFs of the server 105 and a plurality of leaf devices 110. In some example embodiments, after the client device 125 transmits, to the interface device 145, a request for the network redundancy service, the client device 125 receives, from the interface device 145, a response for the request. The response may indicate a list of link bonding modes available to the client device 125. The client device 125 may activate (225) the plurality of redundant links using the list of link bonding modes. For example, the client device 125 may select a link bonding mode from the list of link bonding modes and then use the selected link bonding mode to activate the redundant links.

[0072] By way of example, if the client device 125 (such as a VM, pod or container) needs a network redundancy link, the client device 125 may transmit the request to the control-plane -the interface device 145 (such as a service API) with client information, including, UUID, a user name, NIC names, NIC MAC addresses. The interface device 145  may store client information and response the request with a list of usable or available link bonding modes such as team modes. In an example, the following modes may be provided: an active-active mode with different load-balancing algorithms, excluding LACP; and an active-standby mode with any type of reception (RX) sharing.

[0073] After the interface device 145 receives (220) the indication of the failure of the target PF from the master device 140, the interface device 145 identifies (230) a list of failed second VFs of at least one client device 125. The list of failed second VFs is mapped to the target PF. Then, the interface device 145 transmits (235) second information about a list of failed second VFs. In some example embodiments, the second information may be transmitted through the control link between the interface device 145 and the client device 125.

[0074] In some example embodiments, the interface device 145 may obtain, from the master device 140 and other master devices, mapping between a plurality of second virtual functions of the client device 125 and other client devices and the plurality of PFs of the server 105. The mapping may be obtained by the master device 140 from the server 105, e.g., the OS 155 of the server 105. Based on the mapping from the master device 140, the interface device 145 may identify the list of failed second VFs from the target PF of the server 105 which is failed.

[0075] After the client device 125 receives (240) the second information from the interface device 145, the client device 125 determines (245) whether a second VF of the plurality of second VFs is included in the list of failed second VFs. If a target second VF of the plurality of second VFs is found, the client device 125 disables (250) the target second VF.

[0076] In an example, in the embodiments where the server 105 operates as a cloud host, the interface device 145 may get host level PF / VF mapping relationship from the master device 140 and maintain it with the latest version. Once a host PF LACP interface is ungrouped or down, the master device 140 may report the latest status to the interface device 145 such as a service API. The interface device 145 may identify and find out all impacted VFs that are under failure PF, and then synchronize the failure VF number to all clients on the host. Once the client device 125 receives the list of failed second VFs, the client device 125 disables the failed second VF.

[0077] In some example embodiments, the master device 140 may detect (255) whether  the failure of the target PF is failed. If the master device 140 detects (255) a recovery of the failure of the PF, the master device 140 may transmit (260) an indication of the recovery of the failure of the target PF to the interface device 145. After the interface device 145 receives (265) this indication, the interface 145 may identify (270) a list of recovered second VFs of at least one client device. The list of recovered second VFs is mapped to the target PF.

[0078] Then, the interface device 145 may transmit (275) to the client device 125 third information about the list of recovered second VFs. After the client device 125 receives (280) the third information from the interface device 145, the client device 125 may enable (285) the target second virtual function if the client device 125 determines that the target second VF is included in the list of recovered second VFs.

[0079] In an example, once a PF interface used by the master device 140 is grouped to LACP again, the master device 140 may report the latest status to the interface device 145. Then, the interface device 145 may identify and find out all the second VFs that are under recovered PF, and then synchronize the recovered VF number in a list to all the client devices on the server. Once the client device 125 receives the list of recovered VFs, the client device 125 may enable the failed VF, and thus the failed link has been recovered.

[0080] FIG. 3 shows an overall status machine of a network redundancy service in accordance with some example embodiments of the present disclosure. In this example, a host 302 is an example implementation of the server 105, a service API 304 is an example implementation of the interface device 145. The leaf device may operate as a leaf switches, and the link from the host 302 to the leaf device may be called uplink.

[0081] At 306, uplink LACP is not activated at the host 302. Accordingly, at 308, uplink LACP is not activated at the master device 140 (also called a NETRED Master) . At 310, a NETRED service is not available at the master device 140. At 312, team / bond is not configured at the client device 125.

[0082] At 314, uplink LACP is activated at the host 302. Accordingly, at 316, uplink LACP is active at the master device 140. At 318, it is determined whether PF-VF mapping is updated. If yes, at 320, a NETRED service is available at the master device 140. At 322, team / bond is created with VFs at the client device 125.

[0083] At 324, a PF link failure is detected at the host 302. At 326, an uplink PF link  failure is detected at the master device 140. At 328, a VF link failure is triggered at service API 304. At 330, a VF failure is triggered at the client device 125. At 332, the failed link is removed at the client device 125.

[0084] At 334, the PF link failure is removed at the host 302. At 336, the PF failed link is recovered at the host 302. At 338, the VF link is recovered at the master device 140. At 340, the team / bond link is recovered at the client device 125.

[0085] Next, example processes of link registration, identification and tracking will be described below with reference to FIGS. 4A and FIG. 4B. In these examples, a pod 405 is an example implementation of the client device 125. NICs are example implementations of PFs and VFs.

[0086] Reference is first made to FIG. 4A shows an example process 410 of client registration at the master device 140 in accordance with some example embodiments of the present disclosure.

[0087] In the example process 410, the service API 304 provides a cluster level network redundancy service entry for all client devices 125 such as user VMs / pods / containers, including the pod 405, for network redundancy link registration. M represents any positive integer. The service API 304 distributes redundancy connection information to all user VM / pod / containers through a control-plane link on a cluster network. The service API 304 stores and maintains client information (such as client UUID, client name) and NIC information (aMAC address, a name) . In some example embodiments, the service API 304 may perform statistics and reporting for the cluster network redundancy service.

[0088] FIG. 4B shows an example process 420 of link registration, identification and tracking in accordance with some example embodiments of the present disclosure.

[0089] In the process 420, at step 1, the pod 405 is requested to configure with a redundant link. At step 2, the pod 405 subscribes a network redundancy service from the service API 304 by sending a registry request, and try to setup a redundant connection. At step 3, the pod 405 uploads its system UUID, NIC MAC addresses and NIC names to the service API 304. The reported NICs are VFs from different (2 or more) PFs for redundancy purpose. At step 4, the service API 304 accepts the registration and checks system condition, and then decides to accept or deny the request. At step 5, the pod 405 receives the message and starts to activate team / bond link on VFs (denoted by eth1 and eth2) . At  step 6, the service API 304 updates the information about the pod 405 (such as UUID, VF information and link status) to its database and monitors the connection to the pod 405. At step 7, the pod 405 timely reports its network redundancy link status to the service API 304. At step 8, a timer may be set to ensure that the service API 304 can monitor the state of the pod 405. Once the pod 405 is down for some reasons, the state of the pod 405 is changed to down and be removed later. At step 9, in case the service API 304 has no response, the pod 405 will maintain the current state till the connection with the service API 304 is back.

[0090] Example Methods

[0091] FIG. 5 shows a flowchart of an example method 500 implemented at a master device of a network redundancy service in accordance with some example embodiments of the present disclosure. For the purpose of discussion, the method 500 will be described from the perspective of the master device 140 in FIG. 1A.

[0092] At block 510, the master device 140 establishes a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server. At block 520, the master device 140 monitors states of the plurality of physical functions. At block 530, in response to detecting a failure of a target physical function of the plurality of physical functions, the master device 140 transmits an indication of the failure of the target physical function to an interface device of the network redundancy service.

[0093] In some example embodiments, the master device 140 may establish the plurality of redundant links with the plurality of leaf devices on the plurality of physical functions. In some other example embodiments, the master device 140 may establish the plurality of redundant links on a plurality of first virtual functions of the master device, a first virtual function of the plurality of first virtual functions being mapped to a physical function of the plurality of physical functions.

[0094] In some example embodiments, after detecting the failure of the target physical function, the master device 140 may control a state of a first virtual function of the plurality of first virtual functions to be down, the first virtual function corresponding to the target physical function.

[0095] In some example embodiments, the master device 140 may obtain, from the server, mapping between a plurality of second virtual functions of a plurality of client devices and the plurality of physical functions and then transmitting the mapping to the  interface device.

[0096] In some example embodiments, if a failure of a target redundant link of the plurality of redundant links is detected where the target redundant link corresponding to the target physical function, the master device 140 may determine that the target physical function is failed.

[0097] In some example embodiments, if a recovery of the failure of the target physical function is detected, the master device 140 may transmit an indication of the recovery of the failure of the target physical function to the interface device.

[0098] In some example embodiments, the server comprises a cloud host, and the leaf device comprises a switch or a router.

[0099] FIG. 6 shows a flowchart of an example method 600 implemented at an interface device of a network redundancy service in accordance with some example embodiments of the present disclosure. For the purpose of discussion, the method 600 will be described from the perspective of the interface device 145 in FIG. 1A.

[0100] At block 610, the interface device 145 receives, from a master device of a plurality of master devices of the network redundancy service, an indication of a failure of a target physical function of a plurality of physical functions of a server. The plurality of physical functions is used to enable a plurality of redundant links between the server and a plurality of leaf devices. At block 620, the interface device 145 identifies a list of failed second virtual functions of at least one client device. The list of failed second virtual functions is mapped to the target physical function. At block 630, the interface device 145 transmits, to the at least one client device, second information about the list of failed second virtual functions.

[0101] In some example embodiments, the interface device 145 may receive, from a target client device of the at least one client device, a request for the network redundancy service. The request may indicate first information about the target client device. The interface device 145 may establish a control link with the target client device. The second information about the list of failed second virtual functions may be transmitted by the interface device 145 to the target client device through the control link.

[0102] In some example embodiments, the first information about the target client device may include at least one of: an identification of the target client device; a name of  the target client device; addresses of a plurality of second virtual functions of the target client device; or names of the plurality of second virtual functions of the target client device.

[0103] In some example embodiments, after receiving the request from the target client device, the interface device 145 may transmit, to the target client device, a response for the request. The response may indicate a list of link bonding modes available to the target client device.

[0104] In some example embodiments, the interface device 145 may monitor a state of the control link. If a failure of the control link is detected, the interface device 145 may remove the control link.

[0105] In some example embodiments, the state of the control link is monitored based on at least one of: a monitoring timer, or a report of a state of the control link from the target client device.

[0106] In some example embodiments, the interface device 145 may obtain, from the master device of the plurality of master devices, mapping between a plurality of second virtual functions of the at least one client device and the plurality of physical functions of the server. The list of failed second virtual functions may be identified by the interface device 145 from the target physical function based on the mapping.

[0107] In some example embodiments, the interface device 145 may receive, from the master device of a plurality of master device, an indication of a recovery of the failure of the target physical function. Then, the interface device 145 may identify a list of recovered second virtual functions of at least one client device. The list of recovered second virtual functions is mapped to the target physical function. The interface device 145 may transmit, to the at least one client device, third information about the list of recovered second virtual functions.

[0108] In some example embodiments, the server may comprise a cloud host, and the leaf device may comprise a switch or a router.

[0109] FIG. 7 shows a flowchart of an example method 700 implemented at a client device in accordance with some example embodiments of the present disclosure. For the purpose of discussion, the method 700 will be described from the perspective of the client device 125 in FIG. 1A.

[0110] At block 710, the client device 125 activates, on a plurality of second virtual functions of the client device, a plurality of redundant links between a plurality of physical functions of a server and a plurality of leaf devices. At block 720, the client device 125 receives, from an interface device of a network redundancy service, second information about a list of failed second virtual functions. At block 730, based on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, the client device 125 disables the target second virtual function.

[0111] In some example embodiments, the client device 125 may transmit, to the interface device, a request for the network redundancy service. The request may indicate first information about the client device. after transmitting the request, the client device 125 may establish a control link between the interface device. The second information about the list of failed second virtual functions may be received by the client device 125 from the interface device through the control link.

[0112] In some example embodiments, the first information about the client device includes at least one of: an identification of the client device; a name of the client device; addresses of the plurality of second virtual functions of the client device; or names of the plurality of second virtual functions of the client device.

[0113] In some example embodiments, the client device 125 may transmit, to the interface device, a report of a state of the control link.

[0114] In some example embodiments, the client device 125 may receive, from the interface device, a response for the request. The response may indicate a list of link bonding modes. The plurality of redundant links may be activated on the plurality of second virtual functions of the client device using the list of link bonding modes.

[0115] In some example embodiments, the client device 125 may receive, from the interface device, third information about a list of recovered second virtual functions. Based on a determination that the target second virtual function is included in the list of recovered second virtual functions, the client device 125 may enable the target second virtual function.

[0116] In some example embodiments, the server may comprise a cloud host, and the leaf device may comprise a switch or a router.

[0117] In some example embodiments, the client device 125 may comprise at least one of a virtual machine, a pod or a container.

[0118] FIG. 8 shows a flowchart of an example method 800 for a network redundancy service in accordance with some example embodiments of the present disclosure. The method 800 can be implemented in the system infrastructure 100. For the purpose of discussion, the method 700 will be described with reference to FIG. 1A.

[0119] At block 805, the master device 140 establishes a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server. At block 810, the master device 140 monitors states of the plurality of physical functions. At block 815, in response to detecting a failure of a target physical function of the plurality of physical functions, the master device 140 transmits an indication of the failure of the target physical function to the interface device 145.

[0120] At block 820, in response receiving, from the master device 140, the indication of the failure of the target physical function, the interface device 145 identifies a list of failed second virtual functions of at least one client device. The list of failed second virtual functions is mapped to the target physical function. At block 825, the interface device 145 transmits, to the client device 125, second information about the list of failed second virtual functions.

[0121] At block 830, after the client device 125 activates the plurality of redundant links on a plurality of second virtual functions of the client device 125, in response to receiving the second information from the interface device, the client device 125 determines whether a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions. At block 835, based on a determination that the target second virtual function is included in the list of failed second virtual functions, the client device 125 disables the target second virtual function.

[0122] All operations and features related to the master device 140, the interface device 145 and the client device 125 as described above with reference to FIGS. 1A to 4B are likewise applicable to the methods 500, 600, 700 and 800 and have similar effects. For the purpose of simplification, the details will be omitted.

[0123] Example Apparatus, Device and Medium

[0124] In some example embodiments, an apparatus capable of performing the method  500 (for example, the master device 140 in FIG. 1A) may comprise means for performing the respective operations of the method 500. The means may be implemented in any suitable form. For example, the means may be implemented in a circuitry or software module. The apparatus may be implemented as or included in the master device 140 in FIG. 1A.

[0125] In some example embodiments, the apparatus comprises means for establishing a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server; means for monitoring states of the plurality of physical functions; and means for in response to detecting a failure of a target physical function of the plurality of physical functions, transmitting an indication of the failure of the target physical function to an interface device of the network redundancy service.

[0126] In some example embodiments, the means for establishing the plurality of redundant links comprises: means for establishing the plurality of redundant links with the plurality of leaf devices on the plurality of physical functions.

[0127] In some example embodiments, the means for establishing the redundant link comprises: means for establishing the plurality of redundant links on a plurality of first virtual functions of the master device, a first virtual function of the plurality of first virtual functions being mapped to a physical function of the plurality of physical functions.

[0128] In some example embodiments, the apparatus further comprises: means for in response to detecting the failure of the target physical function, controlling a state of a first virtual function of the plurality of first virtual functions to be down, the first virtual function corresponding to the target physical function.

[0129] In some example embodiments, the apparatus further comprises: means for obtaining, from the server, mapping between a plurality of second virtual functions of a plurality of client devices and the plurality of physical functions; and means for transmitting the mapping to the interface device.

[0130] In some example embodiments, the means for detecting the failure of the target physical function comprises: means for in response to detecting a failure of a target redundant link of the plurality of redundant links, the target redundant link corresponding to the target physical function, determining that the target physical function is failed.

[0131] In some example embodiments, the apparatus further comprises: means for in  response to detecting a recovery of the failure of the target physical function, transmitting an indication of the recovery of the failure of the target physical function to the interface device.

[0132] In some example embodiments, the server comprises a cloud host, and the leaf device comprises a switch or a router.

[0133] In some example embodiments, the apparatus further comprises means for performing other operations in some example embodiments of the method 500 or the master device 140. In some example embodiments, the means comprises at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the performance of the apparatus.

[0134] In some example embodiments, an apparatus capable of performing the method 600 (for example, the interface device 145 in FIG. 1A) may comprise means for performing the respective operations of the method 600. The means may be implemented in any suitable form. For example, the means may be implemented in a circuitry or software module. The apparatus may be implemented as or included in the interface device 145 in FIG. 1A.

[0135] In some example embodiments, the apparatus comprises means for receiving, from a master device of a plurality of master devices of the network redundancy service, an indication of a failure of a target physical function of a plurality of physical functions of a server, the plurality of physical functions being used to enable a plurality of redundant links between the server and a plurality of leaf devices; means for identifying a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; and means for transmitting, to the at least one client device, second information about the list of failed second virtual functions.

[0136] In some example embodiments, the apparatus further comprises: means for receiving, from a target client device of the at least one client device, a request for the network redundancy service, the request indicating first information about the target client device; and means for establishing a control link with the target client device. The second information about the list of failed second virtual functions is transmitted to the target client device through the control link.

[0137] In some example embodiments, the first information about the target client device includes at least one of: an identification of the target client device; a name of the target client device; addresses of a plurality of second virtual functions of the target client device; or names of the plurality of second virtual functions of the target client device.

[0138] In some example embodiments, the apparatus further comprises: means for in response to receiving the request from the target client device, transmitting, to the target client device, a response for the request, the response indicating a list of link bonding modes available to the target client device.

[0139] In some example embodiments, the apparatus further comprises: means for monitoring a state of the control link; and means for in response to detecting a failure of the control link, removing the control link.

[0140] In some example embodiments, the state of the control link is monitored based on at least one of: a monitoring timer, or a report of a state of the control link from the target client device.

[0141] In some example embodiments, the apparatus further comprises: means for obtaining, from the master device of the plurality of master devices, mapping between a plurality of second virtual functions of the at least one client device and the plurality of physical functions of the server. The list of failed second virtual functions is identified from the target physical function based on the mapping.

[0142] In some example embodiments, the apparatus further comprises: means for receiving, from the master device of a plurality of master device, an indication of a recovery of the failure of the target physical function; means for identifying a list of recovered second virtual functions of at least one client device, the list of recovered second virtual functions being mapped to the target physical function; and means for transmitting, to the at least one client device, third information about the list of recovered second virtual functions.

[0143] In some example embodiments, the server comprises a cloud host, and the leaf device comprises a switch or a router.

[0144] In some example embodiments, the apparatus further comprises means for performing other operations in some example embodiments of the method 600 or the interface device 145. In some example embodiments, the means comprises at least one  processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the performance of the apparatus.

[0145] In some example embodiments, an apparatus capable of performing the method 700 (for example, the client device 125 in FIG. 1A) may comprise means for performing the respective operations of the method 700. The means may be implemented in any suitable form. For example, the means may be implemented in a circuitry or software module. The apparatus may be implemented as or included in the client device 125 in FIG. 1A.

[0146] In some example embodiments, the apparatus comprises means for activating, on a plurality of second virtual functions of the client device, a plurality of redundant links between a plurality of physical functions of a server and a plurality of leaf devices; means for receiving, from an interface device of a network redundancy service, second information about a list of failed second virtual functions; and means for based on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disabling the target second virtual function.

[0147] In some example embodiments, the apparatus further comprises: means for transmitting, to the interface device, a request for the network redundancy service, the request indicating first information about the client device; and means for in response transmitting the request, establishing a control link between the interface device, wherein the second information about the list of failed second virtual functions is received from the interface device through the control link.

[0148] In some example embodiments, the first information about the client device includes at least one of: an identification of the client device; a name of the client device; addresses of the plurality of second virtual functions of the client device; or names of the plurality of second virtual functions of the client device.

[0149] In some example embodiments, the apparatus further comprises: means for transmitting, to the interface device, a report of a state of the control link.

[0150] In some example embodiments, the apparatus further comprises: means for receiving, from the interface device, a response for the request, the response indicating a list of link bonding modes, wherein the plurality of redundant links is activated on the  plurality of second virtual functions of the client device using the list of link bonding modes.

[0151] In some example embodiments, the apparatus further comprises: means for receiving, from the interface device, third information about a list of recovered second virtual functions; and means for based on a determination that the target second virtual function is included in the list of recovered second virtual functions, enabling the target second virtual function.

[0152] In some example embodiments, the server may comprise a cloud host, and the leaf device may comprise a switch or a router.

[0153] In some example embodiments, the client device may comprise at least one of a virtual machine, a pod or a container.

[0154] In some example embodiments, the apparatus further comprises means for performing other operations in some example embodiments of the method 700 or the client device 125. In some example embodiments, the means comprises at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the performance of the apparatus.

[0155] FIG. 9 is a simplified block diagram of a device 900 that is suitable for implementing example embodiments of the present disclosure. The device 900 may be provided to implement a communication device, for example, the Tx node 110 or the sensing node 120 as shown in FIG. 1. As shown, the device 900 includes one or more processors 910, one or more memories 920 coupled to the processor 910, and one or more communication modules 940 coupled to the processor 910.

[0156] The communication module 940 is for bidirectional communications. The communication module 940 has one or more communication interfaces to facilitate communication with one or more other modules or devices. The communication interfaces may represent any interface that is necessary for communication with other network elements. In some example embodiments, the communication module 940 may include at least one antenna.

[0157] The processor 910 may be of any type suitable to the local technical network and may include one or more of the following: general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on  multicore processor architecture, as non-limiting examples. The device 900 may have multiple processors, such as an application specific integrated circuit chip that is slaved in time to a clock which synchronizes the main processor.

[0158] The memory 920 may include one or more non-volatile memories and one or more volatile memories. Examples of the non-volatile memories include, but are not limited to, a Read Only Memory (ROM) 924, an electrically programmable read only memory (EPROM) , a flash memory, a hard disk, a compact disc (CD) , a digital video disk (DVD) , an optical disk, a laser disk, and other magnetic storage and / or optical storage. Examples of the volatile memories include, but are not limited to, a random access memory (RAM) 922 and other volatile memories that will not last in the power-down duration.

[0159] A computer program 930 includes computer executable instructions that are executed by the associated processor 910. The instructions of the program 930 may include instructions for performing operations / acts of some example embodiments of the present disclosure. The program 930 may be stored in the memory, e.g., the ROM 924. The processor 910 may perform any suitable actions and processing by loading the program 930 into the RAM 922.

[0160] The example embodiments of the present disclosure may be implemented by means of the program 930 so that the device 900 may perform any process of the disclosure as discussed with reference to FIG. 1A to FIG. 8. The example embodiments of the present disclosure may also be implemented by hardware or by a combination of software and hardware.

[0161] In some example embodiments, the program 930 may be tangibly contained in a computer readable medium which may be included in the device 900 (such as in the memory 920) or other storage devices that are accessible by the device 900. The device 900 may load the program 930 from the computer readable medium to the RAM 922 for execution. In some example embodiments, the computer readable medium may include any types of non-transitory storage medium, such as ROM, EPROM, a flash memory, a hard disk, CD, DVD, and the like. The term “non-transitory, ” as used herein, is a limitation of the medium itself (i.e., tangible, not a signal) as opposed to a limitation on data storage persistency (e.g., RAM vs. ROM) .

[0162] FIG. 10 shows an example of the computer readable medium 1000 which may  be in form of CD, DVD or other optical storage disk. The computer readable medium 1000 has the program 930 stored thereon.

[0163] Generally, various embodiments of the present disclosure may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device. While various aspects of embodiments of the present disclosure are illustrated and described as block diagrams, flowcharts, or using some other pictorial representations, it is to be understood that the block, apparatus, system, technique or method described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.

[0164] Some example embodiments of the present disclosure also provide at least one computer program product tangibly stored on a computer readable medium, such as a non-transitory computer readable medium. The computer program product includes computer-executable instructions, such as those included in program modules, being executed in a device on a target physical or virtual processor, to carry out any of the methods as described above. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, or the like that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as desired in various embodiments. Machine-executable instructions for program modules may be executed within a local or distributed device. In a distributed device, program modules may be located in both local and remote storage media.

[0165] Program code for carrying out methods of the present disclosure may be written in any combination of one or more programming languages. The program code may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program code, when executed by the processor or controller, cause the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.

[0166] In the context of the present disclosure, the computer program code or related data may be carried by any suitable carrier to enable the device, apparatus or processor to perform various processes and operations as described above. Examples of the carrier include a signal, computer readable medium, and the like.

[0167] The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the computer readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0168] Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the present disclosure, but rather as descriptions of features that may be specific to particular embodiments. Unless explicitly stated, certain features that are described in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, unless explicitly stated, various features that are described in the context of a single embodiment may also be implemented in a plurality of embodiments separately or in any suitable sub-combination.

[0169] Although the present disclosure has been described in languages specific to structural features and / or methodological acts, it is to be understood that the present disclosure defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims

1.A method implemented at a master device of a network redundancy service, comprising:establishing a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server;monitoring states of the plurality of physical functions; andin response to detecting a failure of a target physical function of the plurality of physical functions, transmitting an indication of the failure of the target physical function to an interface device of the network redundancy service.2.The method of claim 1, wherein establishing the plurality of redundant links comprises:establishing the plurality of redundant links with the plurality of leaf devices on the plurality of physical functions.3.The method of claim 1, wherein establishing the redundant link comprises:establishing the plurality of redundant links on a plurality of first virtual functions of the master device, a first virtual function of the plurality of first virtual functions being mapped to a physical function of the plurality of physical functions.4.The method of claim 3, further comprising:in response to detecting the failure of the target physical function, controlling a state of a first virtual function of the plurality of first virtual functions to be down, the first virtual function corresponding to the target physical function.5.The method of any of claims 1-4, further comprising:obtaining, from the server, mapping between a plurality of second virtual functions of a plurality of client devices and the plurality of physical functions; andtransmitting the mapping to the interface device.6.The method of any of claims 1-5, wherein detecting the failure of the target physical function comprises:in response to detecting a failure of a target redundant link of the plurality of redundant links, the target redundant link corresponding to the target physical function, determining that the target physical function is failed.7.The method of any of claims 1-6, further comprising:in response to detecting a recovery of the failure of the target physical function, transmitting an indication of the recovery of the failure of the target physical function to the interface device.8.The method of any of claims 1-7, wherein the server comprises a cloud host, and the leaf device comprises a switch or a router.9.A method implemented at an interface device of a network redundancy service, the method comprising:receiving, from a master device of a plurality of master devices of the network redundancy service, an indication of a failure of a target physical function of a plurality of physical functions of a server, the plurality of physical functions being used to enable a plurality of redundant links between the server and a plurality of leaf devices;identifying a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; andtransmitting, to the at least one client device, second information about the list of failed second virtual functions.10.The method of claim 9, further comprising:receiving, from a target client device of the at least one client device, a request for the network redundancy service, the request indicating first information about the target client device; andestablishing a control link with the target client device,wherein the second information about the list of failed second virtual functions is transmitted to the target client device through the control link.11.The method of claim 10, wherein the first information about the target client device includes at least one of:an identification of the target client device;a name of the target client device;addresses of a plurality of second virtual functions of the target client device; ornames of the plurality of second virtual functions of the target client device.12.The method of claim 10 or 11, further comprising:in response to receiving the request from the target client device, transmitting, to the target client device, a response for the request, the response indicating a list of link bonding modes available to the target client device.13.The method of any of claims 11-12, further comprising:monitoring a state of the control link; andin response to detecting a failure of the control link, removing the control link.14.The method of claim 13, wherein the state of the control link is monitored based on at least one of:a monitoring timer, ora report of a state of the control link from the target client device.15.The method of any of claims 9-14, further comprising:obtaining, from the master device of the plurality of master devices, mapping between a plurality of second virtual functions of the at least one client device and the plurality of physical functions of the server,wherein the list of failed second virtual functions is identified from the target physical function based on the mapping.16.The method of any of claims 9-15, further comprising:receiving, from the master device of a plurality of master device, an indication of a recovery of the failure of the target physical function;identifying a list of recovered second virtual functions of at least one client device, the list of recovered second virtual functions being mapped to the target physical function; andtransmitting, to the at least one client device, third information about the list of recovered second virtual functions.17.The method of any of claims 9-16, wherein the server comprises a cloud host, and the leaf device comprises a switch or a router.18.A method implemented at a client device, the method comprising:activating, on a plurality of second virtual functions of the client device, a plurality of redundant links between a plurality of physical functions of a server and a plurality of leaf devices;receiving, from an interface device of a network redundancy service, second information about a list of failed second virtual functions; andbased on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disabling the target second virtual function.19.The method of claim 18, further comprising:transmitting, to the interface device, a request for the network redundancy service, the request indicating first information about the client device; andin response transmitting the request, establishing a control link between the interface device,wherein the second information about the list of failed second virtual functions is received from the interface device through the control link.20.The method of claim 19, wherein the first information about the client device includes at least one of:an identification of the client device;a name of the client device;addresses of the plurality of second virtual functions of the client device; ornames of the plurality of second virtual functions of the client device.21.The method of claim 19 or 20, further comprising:transmitting, to the interface device, a report of a state of the control link.22.The method of any of claims 19-21, further comprising:receiving, from the interface device, a response for the request, the response indicating a list of link bonding modes,wherein the plurality of redundant links is activated on the plurality of second virtual functions of the client device using the list of link bonding modes.23.The method of any of claims 18-22, further comprising:receiving, from the interface device, third information about a list of recovered second virtual functions; andbased on a determination that the target second virtual function is included in the list of recovered second virtual functions, enabling the target second virtual function.24.The method of any of claims 18-23, wherein the server comprises a cloud host,  and the leaf device comprises a switch or a router.25.The method of any of claims 18-24, wherein the client device comprises at least one of a virtual machine, a pod or a container.26.An apparatus comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:establish a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server;monitor states of the plurality of physical functions; andin response to detecting a failure of a target physical function of the plurality of physical functions, transmit an indication of the failure of the target physical function to an interface device of the network redundancy service.27.The apparatus of claim 26, wherein the at least one memory and the at least one processor cause the apparatus to:establish the plurality of redundant links with the plurality of leaf devices on the plurality of physical functions.28.The apparatus of claim 26, wherein the at least one memory and the at least one processor cause the apparatus to:establish the plurality of redundant links on a plurality of first virtual functions of the master device, a first virtual function of the plurality of first virtual functions being mapped to a physical function of the plurality of physical functions.29.The apparatus of claim 28, wherein the at least one memory and the at least one processor further cause the apparatus to:in response to detecting the failure of the target physical function, control a state of a first virtual function of the plurality of first virtual functions to be down, the first virtual function corresponding to the target physical function.30.The apparatus of any of claims 26-29, wherein the at least one memory and the at least one processor further cause the apparatus to:obtain, from the server, mapping between a plurality of second virtual functions of a plurality of client devices and the plurality of physical functions; andtransmit the mapping to the interface device.31.The apparatus of any of claims 26-30, wherein the at least one memory and the at least one processor cause the apparatus to:in response to detecting a failure of a target redundant link of the plurality of redundant links, the target redundant link corresponding to the target physical function, determine that the target physical function is failed.32.The apparatus of any of claims 26-31, wherein the at least one memory and the at least one processor further cause the apparatus to:in response to detecting a recovery of the failure of the target physical function, transmit an indication of the recovery of the failure of the target physical function to the interface device.33.The apparatus of any of claims 26-32, wherein the server comprises a cloud host, and the leaf device comprises a switch or a router.34.An apparatus comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:receive, from a master device of a plurality of master devices of the network redundancy service, an indication of a failure of a target physical function of a plurality of physical functions of a server, the plurality of physical functions being used to enable a plurality of redundant links between the server and a plurality of leaf devices;identify a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; andtransmit, to the at least one client device, second information about the list of failed second virtual functions.35.The apparatus of claim 34, wherein the at least one memory and the at least one processor further cause the apparatus to:receive, from a target client device of the at least one client device, a request for the network redundancy service, the request indicating first information about the target client device; andestablish a control link with the target client device,wherein the second information about the list of failed second virtual functions is transmitted to the target client device through the control link.36.The apparatus of claim 35, wherein the first information about the target client device includes at least one of:an identification of the target client device;a name of the target client device;addresses of a plurality of second virtual functions of the target client device; ornames of the plurality of second virtual functions of the target client device.37.The apparatus of claim 35 or 36, wherein the at least one memory and the at least one processor further cause the apparatus to:in response to receiving the request from the target client device, transmit, to the target client device, a response for the request, the response indicating a list of link bonding modes available to the target client device.38.The apparatus of any of claims 36-37, wherein the at least one memory and the at least one processor further cause the apparatus to:monitor a state of the control link; andin response to detecting a failure of the control link, remove the control link.39.The apparatus of claim 38, wherein the state of the control link is monitored based on at least one of:a monitoring timer, ora report of a state of the control link from the target client device.40.The apparatus of any of claims 34-39, wherein the at least one memory and the at least one processor further cause the apparatus to:obtain, from the master device of the plurality of master devices, mapping between a plurality of second virtual functions of the at least one client device and the plurality of physical functions of the server,wherein the list of failed second virtual functions is identified from the target physical function based on the mapping.41.The apparatus of any of claims 34-40, wherein the at least one memory and the at least one processor further cause the apparatus to:receive, from the master device of a plurality of master device, an indication of a recovery of the failure of the target physical function;identify a list of recovered second virtual functions of at least one client device, the list of recovered second virtual functions being mapped to the target physical function; andtransmit, to the at least one client device, third information about the list of recovered second virtual functions.42.The apparatus of any of claims 34-41, wherein the server comprises a cloud host, and the leaf device comprises a switch or a router.43.An apparatus comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:activate, on a plurality of second virtual functions of the client device, a plurality of redundant links between a plurality of physical functions of a server and a plurality of leaf devices;receive, from an interface device of a network redundancy service, second information about a list of failed second virtual functions; andbased on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disable the target second virtual function.44.The apparatus of claim 43, wherein the at least one memory and the at least one processor further cause the apparatus to:transmit, to the interface device, a request for the network redundancy service, the request indicating first information about the client device; andin response transmitting the request, establish a control link between the interface device,wherein the second information about the list of failed second virtual functions is received from the interface device through the control link.45.The apparatus of claim 44, wherein the first information about the client device includes at least one of:an identification of the client device;a name of the client device;addresses of the plurality of second virtual functions of the client device; ornames of the plurality of second virtual functions of the client device.46.The apparatus of claim 44 or 45, wherein the at least one memory and the at least one processor further cause the apparatus to:transmit, to the interface device, a report of a state of the control link.47.The apparatus of any of claims 44-46, wherein the at least one memory and the at least one processor further cause the apparatus to:receive, from the interface device, a response for the request, the response indicating a list of link bonding modes,wherein the plurality of redundant links is activated on the plurality of second virtual functions of the client device using the list of link bonding modes.48.The apparatus of any of claims 43-47, wherein the at least one memory and the at least one processor further cause the apparatus to:receive, from the interface device, third information about a list of recovered second virtual functions; andbased on a determination that the target second virtual function is included in the list of recovered second virtual functions, enable the target second virtual function.49.The apparatus of any of claims 43-48, wherein the server comprises a cloud host, and the leaf device comprises a switch or a router.50.The apparatus of any of claims 43-49, wherein the client device comprises at least one of a virtual machine, a pod or a container.51.A computer readable medium comprising instructions stored thereon for causing  an apparatus at least to:establish a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server;monitor states of the plurality of physical functions; andin response to detecting a failure of a target physical function of the plurality of physical functions, transmit an indication of the failure of the target physical function to an interface device of the network redundancy service.52.A computer readable medium comprising instructions stored thereon for causing an apparatus at least to:receive, from a master device of a plurality of master devices of the network redundancy service, an indication of a failure of a target physical function of a plurality of physical functions of a server, the plurality of physical functions being used to enable a plurality of redundant links between the server and a plurality of leaf devices;identify a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; andtransmit, to the at least one client device, second information about the list of failed second virtual functions.53.A computer readable medium comprising instructions stored thereon for causing an apparatus at least to:activate, on a plurality of second virtual functions of the client device, a plurality of redundant links between a plurality of physical functions of a server and a plurality of leaf devices;receive, from an interface device of a network redundancy service, second information about a list of failed second virtual functions; andbased on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disable the target second virtual function.54.A method of a network redundancy service, comprising:establishing, by a master device, a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server;monitoring, by the master device, states of the plurality of physical functions;in response to detecting a failure of a target physical function of the plurality of physical functions, transmitting, by the master device, an indication of the failure of the target physical function to an interface device;in response receiving, by the interface device, from the master device, the indication of the failure of the target physical function, identifying, by the interface device, a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function;transmitting, by the interface device, to a client device, second information about the list of failed second virtual functions;after activating, by the client device, the plurality of redundant links on a plurality of second virtual functions of the client device, in response to receiving, by the client device, the second information from the interface device, determining, by the client device, whether a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions; andbased on a determination that the target second virtual function is included in the list of failed second virtual functions, disabling, by the client device, the target second virtual function.55.A system for a network redundancy service, comprising:a plurality of master devices, a master device of the plurality of master devices configured to:establish a plurality of redundant links with a plurality of leaf devices using a plurality of physical functions of a server;monitor states of the plurality of physical functions; andin response to detecting a failure of a target physical function of the plurality of physical functions, transmit an indication of the failure of the target physical function to an interface device;the interface device configured to:receive, from the master device of the plurality of master devices, the indication of the failure of the target physical function;identify a list of failed second virtual functions of at least one client device, the list of failed second virtual functions being mapped to the target physical function; andtransmit, to the at least one client device, second information about the list of failed second virtual functions; anda plurality of client devices, a client device of the plurality of client devices configured to:activate the plurality of redundant links on a plurality of second virtual functions of the client device;receive, from the interface device, the second information about the list of failed second virtual functions; andbased on a determination that a target second virtual function of the plurality of second virtual functions is included in the list of failed second virtual functions, disable the target second virtual function.

Citation Information

Patent Citations

  • Data path failover method for SR-IOV capable ethernet controller

    US20160342437A1

  • System and method for redundant independent networks in a high performance computing environment

    US20190068401A1

  • Managing network ports in a virtualization environment

    US20220052904A1

Cited By

  • Network communication method for rail transit service

    CN120658771A