troglobit / pimd

PIM-SM/SSM multicast routing for UNIX and Linux
http://troglobit.com/projects/pimd/
BSD 3-Clause "New" or "Revised" License
194 stars 86 forks source link

PIMD not working with FreeBSD12.2 if MAXVIFS-64 (I created a FreeBSD-ticket) #180

Closed LouisAtGH closed 3 years ago

LouisAtGH commented 3 years ago

Joachim,

Lot of thanks for the support!, not the hoped result, but shit happens. At least the conclusion was important "very likely FreeBSD-issue".

Saturday I did not realize that they already performed that maxvifs change, I should have known. Perhaps we would have done different tests. Sorry.

I did more testing after our session, also adding debug statements. That did, as expected, not change the FreeBSD-issue-conclusion. To be even more sure, and to have a working system, I did contacted NetGate and they did roll-back the MAXVIFS change.

Retesting learned that that maxvifs back to 32 ^solved^ :) the issue.

After all these tests, all hinting in the direction of a "FreeBSD maxvifs-problem", I did open a FreeBSD bug report (251047 Multicast: Not possible to add MFC entry's when MAXVIFS = 64).

I will keep you informed if there is progress.

Louis

LouisAtGH commented 3 years ago

Problem solved,

I made a mistake. The main problem was that expected that changing MAXVIFS at one place (in the program), would do the job. Far from that.

The following changes where/are required:

For FreeBSD you need to / normally build the package in two steps: Step-1: building the package with GIT/GitHub that result in a “distribution file” Step-2: building the package with FreebSD ports using the “distribution file” After the second step you have the package to install.

Open issue As said I used exactly the includes as provided by FreeBSD. That to be sure that differences would not be the cause of the problem. However …….. those files significantly differ from the ones included in the repository. Especially the in.h file is different. In the ip_mroute.h One of the differences is the use of uint64_t mrts <> u_long (I do not know if a long differs from a 64bit integer!?) What ever the compiler did not complain.

General impression was that there where extra lines in in.h, from thinks (not yet) supported by actual FreeBSD-version.

So bottom line, issue solved apart from the mentioned open issues.

Louis

troglobit commented 3 years ago

Bug for unsupported operating system, closing.