Summary: | Multicast: Not possible to add MFC entry's when MAXVIFS = 64 | ||
---|---|---|---|
Product: | Base System | Reporter: | Louis <louis.freebsd> |
Component: | kern | Assignee: | freebsd-net (Nobody) <net> |
Status: | Open --- | ||
Severity: | Affects Some People | CC: | ae, garga, louis.freebsd |
Priority: | --- | Keywords: | IntelNetworking, needs-qa |
Version: | Unspecified | ||
Hardware: | Any | ||
OS: | Any |
Description
Louis
2020-11-11 13:12:07 UTC
If you get EINVAL error, this means that your kernel interface doesn't match to what expects an application. You need to rebuild application with correct ip_mroute.h where MAXVIFS is defined. Also it is possible, that your application has own definition of this constant, so you need to check application sources for this case. Thanks for your reaction, which made me realize that I had to do more than one change, to get a changed maxvifs working. I think I managed that. Not in the proper way yet, and surely not the way it IMHO should work. Problem is that the actual package has to be recompiled for every machine having a different number of vifs. And you need to know the number of vifs of the (unkown) target machine at compile time. And that where ...... IMHO the package should be machine independent ! So what I would like to archive is: - start the program - do an OS-call to read/obtain the maxvifs number - open structures based on the obtained maxvifs - start the actions where the program is designed for Do not know if this is possible, but compiling the package maxvif number / os-instance depended .....is bad !! So you would help me with an OS-call/method providing the maxvifs number on the actual OS-instance ..... Of course this is just a question. As far as I can see now, the problem is not in the os. (In reply to Louis from comment #2) It seems there is no easy way, but the kernel has sysctl variable that depends from MAXVIFS: # sysctl -o net.inet.ip.viftable net.inet.ip.viftable: Format:S,vif[MAXVIFS] Length:1792 Dump:0x00d068f601f8ffff0000000000000000... The size of struct vif is known, so you can determine MAXVIFS. Thanks, It does not win the beauty price, but it could work. Stupid, that there is not proper call for that, Louis Is there a suitable enhancement proposal that can be made here? Also, is this issue limited or scoped only to Intel network hardware? |