troglobit / pimd

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

warning - Too many vifs, ignoring #39

Closed w1r0x closed 9 years ago

w1r0x commented 9 years ago

define MAXVIFS 32

Why it is only 32? I have about 500 vpn vifs, where I want to use igmp.

Can I increase that?

troglobit commented 9 years ago

You can change it, but then you need to change the kernel as well.

w1r0x commented 9 years ago

I've compiled linux kernel with this changes in "include/uapi/linux/mroute.h":

define MAXVIFS 1024

As I know there is no other places when I need to change that constant. So I change pimd sources MAXVIFS constant too in "include/linux/netinet/mroute.h" But its not working. I have these errors:

warning - Failed adding MFC entry src 10.215.1.3 grp 225.26.189.128:(error 22): Invalid argument

and

warning - Failed reading kernel count (SIOCGETSGCNT) for (S,G) on (10.215.1.3, 225.26.189.128):(error 99): Cannot assign requested address Deleting MFC entry for source 10.215.1.3 and group 225.26.189.128 warning - Failed removing MFC entry src 10.215.1.3, grp 225.26.189.128:(error 22): Invalid argument

You can see more detailed log at http://pastebin.com/4xWkeDEt

I have no idea why it happens, I tried to use pimd version without changes with patched kernel, but got the same errors. It only works with default kernel. Can you please help to understand why it happens?

troglobit commented 9 years ago

I've never tried setting such a high value before. I guess the maximum it could be set to, with the data types used, is 254, 255 seems to be used by the kernel as 'inactive'.

Maybe you could use multiple multicast routing tables to get to 1024 interfaces? 32 tables with 32 in each ... support for multiple multicast routing tables is pending merge to master as the pim-ssm branch.

troglobit commented 9 years ago

Support for multiple routing tables have now been merged to master for the upcoming pimd v2.3.0 release. Still pending testing on FreeBSD before release. (Linux, NetBSD and OpenBSD working already, so soon now.)

troglobit commented 9 years ago

I'm closing this issue now.

The new command line option --table-id=ID to pimd as well as the new ./configure --with-max-vifs=MAXVIFS is as far as we in the pimd project can go to help solve this problem.