Skip to content

Commit 402ddb3

Browse files
author
Thomas Barrett
committed
sysfs: add link_layer property to InfiniBandPort
Signed-off-by: Thomas Barrett <thomas@fluidstack.io>
1 parent 5d8dd55 commit 402ddb3

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

sysfs/class_infiniband.go

+8
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ type InfiniBandHwCounters struct {
107107
// /sys/class/infiniband/<Name>/ports/<Port>
108108
// for a single port of one InfiniBand device.
109109
type InfiniBandPort struct {
110+
LinkLayer string
110111
Name string
111112
Port uint
112113
State string // String representation from /sys/class/infiniband/<Name>/ports/<Port>/state
@@ -248,6 +249,13 @@ func (fs FS) parseInfiniBandPort(name string, port string) (*InfiniBandPort, err
248249
ibp := InfiniBandPort{Name: name, Port: uint(portNumber)}
249250

250251
portPath := fs.sys.Path(infinibandClassPath, name, "ports", port)
252+
253+
linkLayer, err := os.ReadFile(filepath.Join(portPath, "link_layer"))
254+
if err != nil {
255+
return nil, err
256+
}
257+
ibp.LinkLayer = strings.TrimSpace(string(linkLayer))
258+
251259
content, err := os.ReadFile(filepath.Join(portPath, "state"))
252260
if err != nil {
253261
return nil, err

sysfs/class_infiniband_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ func TestInfiniBandClass(t *testing.T) {
174174
HCAType: "",
175175
Ports: map[uint]InfiniBandPort{
176176
1: {
177+
LinkLayer: "InfiniBand",
177178
Name: "hfi1_0",
178179
Port: 1,
179180
State: "ACTIVE",
@@ -210,6 +211,7 @@ func TestInfiniBandClass(t *testing.T) {
210211
HCAType: "MT4099",
211212
Ports: map[uint]InfiniBandPort{
212213
1: {
214+
LinkLayer: "InfiniBand",
213215
Name: "mlx4_0",
214216
Port: 1,
215217
State: "ACTIVE",
@@ -238,6 +240,7 @@ func TestInfiniBandClass(t *testing.T) {
238240
},
239241
},
240242
2: {
243+
LinkLayer: "InfiniBand",
241244
Name: "mlx4_0",
242245
Port: 2,
243246
State: "ACTIVE",
@@ -274,6 +277,7 @@ func TestInfiniBandClass(t *testing.T) {
274277
HCAType: "MT4118",
275278
Ports: map[uint]InfiniBandPort{
276279
1: {
280+
LinkLayer: "InfiniBand",
277281
Name: "mlx5_0",
278282
Port: 1,
279283
State: "ACTIVE",

testdata/fixtures.ttar

+15
Original file line numberDiff line numberDiff line change
@@ -5758,6 +5758,11 @@ Lines: 1
57585758
100 Gb/sec (4X EDR)
57595759
Mode: 644
57605760
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5761+
Path: fixtures/sys/class/infiniband/hfi1_0/ports/1/link_layer
5762+
Lines: 1
5763+
InfiniBand
5764+
Mode: 644
5765+
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
57615766
Path: fixtures/sys/class/infiniband/hfi1_0/ports/1/state
57625767
Lines: 1
57635768
4: ACTIVE
@@ -5885,6 +5890,11 @@ Lines: 1
58855890
40 Gb/sec (4X QDR)
58865891
Mode: 644
58875892
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5893+
Path: fixtures/sys/class/infiniband/mlx4_0/ports/1/link_layer
5894+
Lines: 1
5895+
InfiniBand
5896+
Mode: 644
5897+
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
58885898
Path: fixtures/sys/class/infiniband/mlx4_0/ports/1/state
58895899
Lines: 1
58905900
4: ACTIVE
@@ -6266,6 +6276,11 @@ Lines: 1
62666276
25 Gb/sec (1X EDR)
62676277
Mode: 644
62686278
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6279+
Path: fixtures/sys/class/infiniband/mlx5_0/ports/1/link_layer
6280+
Lines: 1
6281+
InfiniBand
6282+
Mode: 644
6283+
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
62696284
Path: fixtures/sys/class/infiniband/mlx5_0/ports/1/state
62706285
Lines: 1
62716286
4: ACTIVE

0 commit comments

Comments
 (0)