On Wed, 21 Nov 2018 11:11:51 -0600 (CST) Mit Matelske <[email protected]> wrote:
> > > > Rather than building a complex shim, why not just have an OS dependent > > section > > of the driver. The bigger issue is that the kernel side functionality in > > BSD > > is different or missing. For example TAP API is different and not > > multi-queue. > > Once I started working on it, I had to go this route. I haven't been able to > but much > time into it yet, but it is coming along: > > EAL: PCI device 0000:b3:00.0 on NUMA socket 0 > EAL: probe driver: 15b3:1013 net_mlx5 > net_mlx5: mlx5.c:1315: mlx5_pci_probe(): checking device "mlx5_0" uverbs0 > /sys/class/infiniband_verbs/uverbs0 /sys/class/infiniband/mlx5_0 > net_mlx5: mlx5.c:1325: mlx5_pci_probe(): PCI information matches for device > "mlx5_0" > net_mlx5: mlx5.c:1315: mlx5_pci_probe(): checking device "mlx5_1" uverbs1 > /sys/class/infiniband_verbs/uverbs1 /sys/class/infiniband/mlx5_1 > net_mlx5: mlx5.c:1382: mlx5_pci_probe(): no switch support detected > net_mlx5: mlx5.c:796: mlx5_dev_spawn(): MPW isn't supported > net_mlx5: mlx5.c:852: mlx5_dev_spawn(): tunnel offloading disabled due to old > OFED/rdma-core version > net_mlx5: mlx5.c:864: mlx5_dev_spawn(): MPLS over GRE/UDP tunnel offloading > disabled due to old OFED/rdma-core version or firmware configuration > net_mlx5: mlx5.c:877: mlx5_dev_spawn(): naming Ethernet device "0000:b3:00.0" > net_mlx5: mlx5.c:1007: mlx5_dev_spawn(): checksum offloading is supported > net_mlx5: mlx5.c:1024: mlx5_dev_spawn(): maximum Rx indirection table size is > 512 > net_mlx5: mlx5.c:1028: mlx5_dev_spawn(): VLAN stripping is not supported > net_mlx5: mlx5.c:1032: mlx5_dev_spawn(): FCS stripping configuration is not > supported > net_mlx5: mlx5.c:1037: mlx5_dev_spawn(): hardware Rx end alignment padding is > not supported > net_mlx5: mlx5.c:1052: mlx5_dev_spawn(): MPS is disabled > net_mlx5: mlx5.c:628: mlx5_uar_init_primary(): port 0 reserved UAR address > space: 0x880000000 > net_mlx5: mlx5.c:1107: mlx5_dev_spawn(): port 0 MAC address is > 00:90:0b:78:2a:ea > net_mlx5: mlx5.c:1114: mlx5_dev_spawn(): port 0 ifname is "mce0" > net_mlx5: mlx5.c:1127: mlx5_dev_spawn(): port 0 MTU is 1500 > net_mlx5: mlx5.c:1142: mlx5_dev_spawn(): flow rules relying on switch > offloads will not be supported: cannot open libmnl socket: Address family not > supported by protocol family > net_mlx5: mlx5.c:1176: mlx5_dev_spawn(): port 0 forcing Ethernet interface up > net_mlx5: mlx5_ethdev.c:735: mlx5_link_update_unlocked_gs(): port 0 > ioctl(SIOCGIFFLAGS) failed: No such file or directory > net_mlx5: mlx5_ethdev.c:664: mlx5_link_update_unlocked_gset(): port 0 > ioctl(SIOCGIFFLAGS) failed: No such file or directory > net_mlx5: mlx5_rxq.c:2150: mlx5_hrxq_drop_new(): port 0 cannot allocate QP > for drop queue > Segmentation fault (core dumped) > > Working through mlx5_ethdev now... > > Mit Also if you are targeting Azure or Hyper-V, then don't bother porting TAP/VDEV_NETVSC/Failsafe model because that is being replaced by netvsc native PMD. It would be easier to just get that working. It would mean writing a uio equivalent driver for FreeBSD.

