US 12,143,316 B2
Software-controlled active-backup mode of link aggregation for RDMA and virtual functions
Piotr Uminski, Gdynia (PL); Anjali Singhai Jain, Portland, OR (US); Eliel Louzoun, Jerusalem (IL); Robert O. Sharp, Austin, TX (US); and Vivek Kashyap, Portland, OR (US)
Assigned to Intel Corporation, Santa Clara, CA (US)
Filed by Intel Corporation, Santa Clara, CA (US)
Filed on Sep. 21, 2020, as Appl. No. 17/026,651.
Prior Publication US 2021/0006511 A1, Jan. 7, 2021
Int. Cl. H04L 12/939 (2013.01); G06F 15/173 (2006.01); H04L 45/00 (2022.01); H04L 45/24 (2022.01); H04L 45/28 (2022.01); H04L 49/351 (2022.01); H04L 49/552 (2022.01); H04L 101/622 (2022.01)
CPC H04L 49/552 (2013.01) [G06F 15/17331 (2013.01); H04L 45/245 (2013.01); H04L 45/28 (2013.01); H04L 45/66 (2013.01); H04L 49/351 (2013.01); H04L 2101/622 (2022.05)] 21 Claims
OG exemplary drawing
 
11. A network interface controller (NIC) and associated software, comprising:
first and second ports;
a first physical function (PF) used for accessing the first port and including first transmit and receive resources employed by the first PF to perform data transfers via the first port;
a second PF used for accessing the second port and including second transmit and receive resources employed by the second PF to perform data transfers via data transfers via the second port; and
software, configured to be executed on a host processor in a compute platform in which the NIC is configured to be installed, the software including first and second link aggregation (LAG)-aware NIC drivers respectively associated with the first and second PFs and a bonding driver, wherein execution of the software on the host processor enables the compute platform:
create a bonding group including the first and second PFs;
implement the first PF as an active PF and use the first PF for data transfers while implementing the second PF as a backup PF;
on a link or port failure of the active PF, reconfigure, by the bonding driver, the bonding group to employ at least a portion of the second transmit and receive resources of the backup PF such that those resources are shared with the active PF; and
perform data transfers using the shared resources of the active PF and the backup PF.