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

