mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 00:32:25 -04:00
libibverbs: Extend support of NDR rates
NDR(106.25 Gbps) support exposed new data rates: 800 Gbps - NDR 8x. 1200 Gbps - NDR 12x. Utility methods were updated to support the new rates mentioned above: 1) Rate to mult - Convert the IB rate enum to a multiple of 2.5 Gbps. 2) Rate to mbps - Convert IB rate enum to the mbps value. In addition, speed_str() of ibv_devinfo was updated to consider the new NDR rate. Reference: IB Spec Release 1.5 PR: 285305 MFC after: 1 week Sponsored by: NVidia networking Change-Id: I77541e406f700585fbfeddc162d5a0e7b79a1c11 Signed-off-by: Slava Shwartsman <slavash@nvidia.com>
This commit is contained in:
parent
b82d789759
commit
5963423232
3 changed files with 11 additions and 0 deletions
|
|
@ -145,6 +145,7 @@ static const char *speed_str(uint8_t speed)
|
|||
case 16: return "14.0 Gbps";
|
||||
case 32: return "25.0 Gbps";
|
||||
case 64: return "50.0 Gbps";
|
||||
case 128: return "100.0 Gbps";
|
||||
default: return "invalid speed";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,6 +115,8 @@ int __attribute__((const)) ibv_rate_to_mult(enum ibv_rate rate)
|
|||
case IBV_RATE_50_GBPS: return 20;
|
||||
case IBV_RATE_400_GBPS: return 160;
|
||||
case IBV_RATE_600_GBPS: return 240;
|
||||
case IBV_RATE_800_GBPS: return 320;
|
||||
case IBV_RATE_1200_GBPS: return 480;
|
||||
default: return -1;
|
||||
}
|
||||
}
|
||||
|
|
@ -135,6 +137,8 @@ enum ibv_rate __attribute__((const)) mult_to_ibv_rate(int mult)
|
|||
case 20: return IBV_RATE_50_GBPS;
|
||||
case 160: return IBV_RATE_400_GBPS;
|
||||
case 240: return IBV_RATE_600_GBPS;
|
||||
case 320: return IBV_RATE_800_GBPS;
|
||||
case 480: return IBV_RATE_1200_GBPS;
|
||||
default: return IBV_RATE_MAX;
|
||||
}
|
||||
}
|
||||
|
|
@ -163,6 +167,8 @@ int __attribute__((const)) ibv_rate_to_mbps(enum ibv_rate rate)
|
|||
case IBV_RATE_50_GBPS: return 53125;
|
||||
case IBV_RATE_400_GBPS: return 425000;
|
||||
case IBV_RATE_600_GBPS: return 637500;
|
||||
case IBV_RATE_800_GBPS: return 850000;
|
||||
case IBV_RATE_1200_GBPS: return 1275000;
|
||||
default: return -1;
|
||||
}
|
||||
}
|
||||
|
|
@ -191,6 +197,8 @@ enum ibv_rate __attribute__((const)) mbps_to_ibv_rate(int mbps)
|
|||
case 53125: return IBV_RATE_50_GBPS;
|
||||
case 425000: return IBV_RATE_400_GBPS;
|
||||
case 637500: return IBV_RATE_600_GBPS;
|
||||
case 850000: return IBV_RATE_800_GBPS;
|
||||
case 1275000: return IBV_RATE_1200_GBPS;
|
||||
default: return IBV_RATE_MAX;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -595,6 +595,8 @@ enum ibv_rate {
|
|||
IBV_RATE_50_GBPS = 20,
|
||||
IBV_RATE_400_GBPS = 21,
|
||||
IBV_RATE_600_GBPS = 22,
|
||||
IBV_RATE_800_GBPS = 23,
|
||||
IBV_RATE_1200_GBPS = 24,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue