Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 16 additions & 8 deletions ibsim/sim.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,22 @@
#define LINKSPEED_SDR_QDR 5
#define LINKSPEED_SDR_DDR_QDR 7

#define LINKSPEEDEXT_NONE 0
#define LINKSPEEDEXT_FDR 1
#define LINKSPEEDEXT_EDR 2
#define LINKSPEEDEXT_FDR_EDR 3
#define LINKSPEEDEXT_HDR 4
#define LINKSPEEDEXT_HDR_FDR 5
#define LINKSPEEDEXT_HDR_EDR 6
#define LINKSPEEDEXT_HDR_EDR_FDR 7
#define LINKSPEEDEXT_NONE 0
#define LINKSPEEDEXT_FDR 1
#define LINKSPEEDEXT_EDR 2
#define LINKSPEEDEXT_FDR_EDR 3
#define LINKSPEEDEXT_HDR 4
#define LINKSPEEDEXT_HDR_FDR 5
#define LINKSPEEDEXT_HDR_EDR 6
#define LINKSPEEDEXT_HDR_EDR_FDR 7
#define LINKSPEEDEXT_NDR 8
#define LINKSPEEDEXT_NDR_FDR 9
#define LINKSPEEDEXT_NDR_EDR 10
#define LINKSPEEDEXT_NDR_FDR_EDR 11
#define LINKSPEEDEXT_NDR_HDR 12
#define LINKSPEEDEXT_NDR_HDR_FDR 13
#define LINKSPEEDEXT_NDR_HDR_EDR 14
#define LINKSPEEDEXT_NDR_HDR_EDR_FDR 15

#define MLNXLINKSPEED_NONE 0
#define MLNXLINKSPEED_FDR10 1
Expand Down
6 changes: 3 additions & 3 deletions ibsim/sim_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ static const char *portlinkspeed[] = {
};

static const char *portlinkspeedext[] = {
"0", " 14G", " 25G", "-", "50G",
"0", " 14G", " 25G", "-", "50G", "-", "-", "-", "100G",
};

static const char *portlinkmlnxspeed[] = {
Expand All @@ -82,8 +82,8 @@ static const char *portlinkmlnxspeed[] = {
#define PORTSTATE(i) (((i) < 1 || (i) > 4) ? "?" : portstates[(i)])
#define PHYSSTATE(i) (((i) < 1 || (i) > 6) ? "?" : physstates[(i)])
#define PORTLINKWIDTH(i) (((i) < 1 || (i) > 16) ? "?" : portlinkwidth[(i)])
#define PORTLINKSPEED(i) (((i) < 1 || (i) > 4) ? "?" : portlinkspeed[(i)])
#define PORTLINKSPEEDEXT(i) (((i) < 0 || (i) > 4) ? "?" : portlinkspeedext[(i)])
#define PORTLINKSPEED(i) (((i) < 1 || (i) > 8) ? "?" : portlinkspeed[(i)])
#define PORTLINKSPEEDEXT(i) (((i) < 0 || (i) > 8) ? "?" : portlinkspeedext[(i)])
#define PORTMLNXLINKSPEED(i) (((i) < 0 || (i) > 1) ? "?" : portlinkmlnxspeed[(i)])

static int do_link(FILE * f, char *line)
Expand Down
13 changes: 13 additions & 0 deletions ibsim/sim_mad.c
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,19 @@ do_portinfo(Port * port, unsigned op, uint32_t portnum, uint8_t * data)
p->linkspeedext = LINKSPEEDEXT_HDR;
rp->linkspeedext = LINKSPEEDEXT_HDR;
break;

case LINKSPEEDEXT_NDR:
case LINKSPEEDEXT_NDR_FDR:
case LINKSPEEDEXT_NDR_EDR:
case LINKSPEEDEXT_NDR_FDR_EDR:
case LINKSPEEDEXT_NDR_HDR:
case LINKSPEEDEXT_NDR_HDR_FDR:
case LINKSPEEDEXT_NDR_HDR_EDR:
case LINKSPEEDEXT_NDR_HDR_EDR_FDR:
p->linkspeedext = LINKSPEEDEXT_NDR;
rp->linkspeedext = LINKSPEEDEXT_NDR;
break;

default:
espeed = 0;
}
Expand Down
10 changes: 8 additions & 2 deletions ibsim/sim_net.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
#define LINKSPEED_STR_FDR "FDR"
#define LINKSPEED_STR_EDR "EDR"
#define LINKSPEED_STR_HDR "HDR"
#define LINKSPEED_STR_NDR "NDR"
#define LINKSPEED_STR_FDR10 "FDR10"

static int inclines[MAX_INCLUDE];
Expand Down Expand Up @@ -500,10 +501,13 @@ static int parse_port_link_width_and_speed(Port * port, char *line)
port->linkspeedena = LINKSPEED_QDR | LINKSPEED_SDR | LINKSPEED_DDR;
port->mlnx_linkspeedena = MLNXLINKSPEED_FDR10;
} else if (!strncmp(speed, LINKSPEED_STR_HDR, strlen(speed))) {

port->linkspeedextena = LINKSPEEDEXT_HDR_EDR_FDR;
port->linkspeedena = LINKSPEED_QDR | LINKSPEED_SDR | LINKSPEED_DDR;
port->mlnx_linkspeedena = MLNXLINKSPEED_FDR10;
} else if (!strncmp(speed, LINKSPEED_STR_NDR, strlen(speed))) {
port->linkspeedextena = LINKSPEEDEXT_NDR_HDR_EDR_FDR;
port->linkspeedena = LINKSPEED_QDR | LINKSPEED_SDR | LINKSPEED_DDR;
port->mlnx_linkspeedena = MLNXLINKSPEED_FDR10;
} else if (!strncmp(speed, LINKSPEED_STR_FDR10, strlen(speed))){
port->linkspeedena = LINKSPEED_QDR | LINKSPEED_SDR | LINKSPEED_DDR;
port->mlnx_linkspeedena = MLNXLINKSPEED_FDR10;
Expand Down Expand Up @@ -1225,6 +1229,8 @@ static int get_active_linkspeedext(Port * lport, Port * rport)
{
int speed = lport->linkspeedextena & rport->linkspeedextena;

if (speed & LINKSPEEDEXT_NDR)
return LINKSPEEDEXT_NDR;
if (speed & LINKSPEEDEXT_HDR)
return LINKSPEEDEXT_HDR;
if (speed & LINKSPEEDEXT_EDR)
Expand Down Expand Up @@ -1281,7 +1287,7 @@ void update_portinfo(Port * p)

if (p->linkspeedext) {
mad_set_field(pi, 0, IB_PORT_LINK_SPEED_EXT_ENABLED_F, p->linkspeedextena);
mad_set_field(pi, 0, IB_PORT_LINK_SPEED_EXT_SUPPORTED_F, LINKSPEEDEXT_HDR_EDR_FDR);
mad_set_field(pi, 0, IB_PORT_LINK_SPEED_EXT_SUPPORTED_F, LINKSPEEDEXT_NDR_HDR_EDR_FDR);
mad_set_field(pi, 0, IB_PORT_LINK_SPEED_EXT_ACTIVE_F, p->linkspeedext);
} else {
mad_set_field(pi, 0, IB_PORT_LINK_SPEED_EXT_ENABLED_F, 0);
Expand Down
2 changes: 2 additions & 0 deletions umad2sim/umad2sim.c
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,8 @@ static int dev_sysfs_create(struct umad2sim_dev *dev)
str = " EDR";
else if (speed == 4)
str = " HDR";
else if (speed == 8)
str = " NDR";
else
str = "";
file_printf(path, SYS_PORT_RATE, "%d Gb/sec (%dX%s)\n",
Expand Down