| # This is a version of net-description.rules for /sys/class/infiniband devices |
| |
| ACTION=="remove", GOTO="rdma_description_end" |
| SUBSYSTEM!="infiniband", GOTO="rdma_description_end" |
| |
| # NOTE: DRIVERS searches up the sysfs path to find the driver that is bound to |
| # the PCI/etc device that the RDMA device is linked to. This is not the kernel |
| # driver that is supplying the RDMA device (eg as seen in ID_NET_DRIVER) |
| |
| # FIXME: with kernel support we could actually detect the protocols the RDMA |
| # driver itself supports, this is a work around for lack of that support. |
| # In future we could do this with a udev IMPORT{program} helper program |
| # that extracted the ID information from the RDMA netlink. |
| |
| # Hardware that supports InfiniBand |
| DRIVERS=="ib_mthca", ENV{ID_RDMA_INFINIBAND}="1" |
| DRIVERS=="mlx4_core", ENV{ID_RDMA_INFINIBAND}="1" |
| DRIVERS=="mlx5_core", ENV{ID_RDMA_INFINIBAND}="1" |
| DRIVERS=="ib_qib", ENV{ID_RDMA_INFINIBAND}="1" |
| |
| # Hardware that supports OPA |
| DRIVERS=="hfi1", ENV{ID_RDMA_OPA}="1" |
| |
| # Hardware that supports iWarp |
| DRIVERS=="cxgb4", ENV{ID_RDMA_IWARP}="1" |
| DRIVERS=="i40e", ENV{ID_RDMA_IWARP}="1" |
| |
| # Hardware that supports RoCE |
| DRIVERS=="be2net", ENV{ID_RDMA_ROCE}="1" |
| DRIVERS=="bnxt_en", ENV{ID_RDMA_ROCE}="1" |
| DRIVERS=="hns", ENV{ID_RDMA_ROCE}="1" |
| DRIVERS=="mlx4_core", ENV{ID_RDMA_ROCE}="1" |
| DRIVERS=="mlx5_core", ENV{ID_RDMA_ROCE}="1" |
| DRIVERS=="qede", ENV{ID_RDMA_ROCE}="1" |
| DRIVERS=="vmw_pvrdma", ENV{ID_RDMA_ROCE}="1" |
| DEVPATH=="*/infiniband/rxe*", ATTR{parent}=="*", ENV{ID_RDMA_ROCE}="1" |
| |
| # Setup the usual ID information so that systemd will display a sane name for |
| # the RDMA device units. |
| SUBSYSTEMS=="pci", ENV{ID_BUS}="pci", ENV{ID_VENDOR_ID}="$attr{vendor}", ENV{ID_MODEL_ID}="$attr{device}" |
| SUBSYSTEMS=="pci", IMPORT{builtin}="hwdb --subsystem=pci" |
| |
| LABEL="rdma_description_end" |