@@ -147,6 +147,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";
}
}
@@ -72,6 +72,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;
}
}
@@ -92,6 +94,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;
}
}
@@ -120,6 +124,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;
}
}
@@ -148,6 +154,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;
}
}
@@ -418,6 +418,7 @@ enum ibv_port_cap_flags2 {
IBV_PORT_SWITCH_PORT_STATE_TABLE_SUP = 1 << 3,
IBV_PORT_LINK_WIDTH_2X_SUP = 1 << 4,
IBV_PORT_LINK_SPEED_HDR_SUP = 1 << 5,
+ IBV_PORT_LINK_SPEED_NDR_SUP = 1 << 10,
};
struct ibv_port_attr {
@@ -721,6 +722,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,
};
/**