# 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"