Removal of PIM support in kernel

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Removal of PIM support in kernel

Joachim Nilsson
Hi,

my name i Joachim and I'm the current upstream maintainer of the
original pimd[1] and mrouted[2] multicast routing daemons.

First of all, I'd like to give a huge thank you to the OpenBSD team
for all the hard work you put in with Stanford to relicense mrouted
under a BSD license[4]!  I don't think you know this, but your work
also freed pimd[1], which in large parts is based on mrouted.

Now, I've got a few worried questions recently about the removal[3]
of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
removed it?  I'd be very happy if someone could just fill me in, or
provide a pointer to a mailing list discussion (I couldn't find any).
At the very least I'd like to have up to date information to provide
my users.

There are currently three major open source PIM implementations for
UNIX that I know of: pimd[1] which today supports both PIM-SM and
PIM-SSM, Xorp pimd[5] (PIM-SM only), and the Quagga PIM-SSM only
pimd[6].  All of them support(ed) OpenBSD, and at least I tested
regularly on OpenBSD.  I think the community could greatly benefit
from keeping the PIM kernel support, however, I do understand that
you primarily only support your in-tree applications, like mrouted.

Best regards
 /Joachim Nilsson

[1]: https://github.com/troglobit/pimd/
[2]: https://github.com/troglobit/mrouted/
[3]: https://marc.info/?l=openbsd-cvs&m=148240469327159
[4]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICE
NSE
[5]: https://github.com/greearb/xorp.ct/
[6]: https://github.com/FRRouting/frr/

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Patrick Wildt-3
On Sun, Dec 10, 2017 at 05:59:33PM +0100, Joachim Nilsson wrote:

> Hi,
>
> my name i Joachim and I'm the current upstream maintainer of the
> original pimd[1] and mrouted[2] multicast routing daemons.
>
> First of all, I'd like to give a huge thank you to the OpenBSD team
> for all the hard work you put in with Stanford to relicense mrouted
> under a BSD license[4]!  I don't think you know this, but your work
> also freed pimd[1], which in large parts is based on mrouted.
>
> Now, I've got a few worried questions recently about the removal[3]
> of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
> removed it?  I'd be very happy if someone could just fill me in, or
> provide a pointer to a mailing list discussion (I couldn't find any).
> At the very least I'd like to have up to date information to provide
> my users.
>
> There are currently three major open source PIM implementations for
> UNIX that I know of: pimd[1] which today supports both PIM-SM and
> PIM-SSM, Xorp pimd[5] (PIM-SM only), and the Quagga PIM-SSM only
> pimd[6].  All of them support(ed) OpenBSD, and at least I tested
> regularly on OpenBSD.  I think the community could greatly benefit
> from keeping the PIM kernel support, however, I do understand that
> you primarily only support your in-tree applications, like mrouted.
>
> Best regards
>  /Joachim Nilsson
>
> [1]: https://github.com/troglobit/pimd/
> [2]: https://github.com/troglobit/mrouted/
> [3]: https://marc.info/?l=openbsd-cvs&m=148240469327159
> [4]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICE
> NSE
> [5]: https://github.com/greearb/xorp.ct/
> [6]: https://github.com/FRRouting/frr/
>

Hi Joachim,

apparently PIM support was in the way of unlocking the network stack,
and since no one stepped up to help improving PIM so that it does not
block the ongoing work, it was simply removed.  I guess no one would
object to re-gaining PIM support as long as it is maintained and is
is written in a way that does not hinder the ongoing efforts.

Patrick

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Martin Pieuchot
In reply to this post by Joachim Nilsson
On 10/12/17(Sun) 17:59, Joachim Nilsson wrote:
> [...]
> Now, I've got a few worried questions recently about the removal[3]
> of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
> removed it?  I'd be very happy if someone could just fill me in, or
> provide a pointer to a mailing list discussion (I couldn't find any).
> At the very least I'd like to have up to date information to provide
> my users.

PIM support has been added to the OpenBSD kernel in 2005 and has never
been enabled by default.  A feature, or set of features, that is/are not
enabled by default are not maintained and thus not supported.  In the
last 5 years, the code that lied under '#ifdef PIM' got broken multiple
times by changes in the network stack and did not even compile for
multiple months.

Last year rzalamena@ rewrote the multicast code to reduce the number of
global data structures, add rdomain support and sync v6 with v4.  When
he started working on that we considered that adapting unmaintained
and non-compiled PIM code was too much extra work.  That's why this code
has been removed.

I'd welcome anyone interested in PIM to work on it.  I'd be great to
have proper kernel support that meets OpenBSD standard and have it
enabled by default.  If you're interested in such work, I can help you
getting started ;)

Cheers,
Martin

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Matthieu Herrb-7
On Sun, Dec 10, 2017 at 07:14:43PM +0100, Martin Pieuchot wrote:

> On 10/12/17(Sun) 17:59, Joachim Nilsson wrote:
> > [...]
> > Now, I've got a few worried questions recently about the removal[3]
> > of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
> > removed it?  I'd be very happy if someone could just fill me in, or
> > provide a pointer to a mailing list discussion (I couldn't find any).
> > At the very least I'd like to have up to date information to provide
> > my users.
>
> PIM support has been added to the OpenBSD kernel in 2005 and has never
> been enabled by default.  A feature, or set of features, that is/are not
> enabled by default are not maintained and thus not supported.  In the
> last 5 years, the code that lied under '#ifdef PIM' got broken multiple
> times by changes in the network stack and did not even compile for
> multiple months.
>
> Last year rzalamena@ rewrote the multicast code to reduce the number of
> global data structures, add rdomain support and sync v6 with v4.  When
> he started working on that we considered that adapting unmaintained
> and non-compiled PIM code was too much extra work.  That's why this code
> has been removed.
>
> I'd welcome anyone interested in PIM to work on it.  I'd be great to
> have proper kernel support that meets OpenBSD standard and have it
> enabled by default.  If you're interested in such work, I can help you
> getting started ;)

Hi,

As a network admin I can say that I have some interest seeing PIM
support back to OpenBSD I've some use cases for multicast routing and
my users would be glad to see it back.

Unfortnatly I totally lack time to help working on this.
--
Matthieu Herrb

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Theo de Raadt-2
In reply to this post by Martin Pieuchot
> I'd welcome anyone interested in PIM to work on it.  I'd be great to
> have proper kernel support that meets OpenBSD standard and have it
> enabled by default.  If you're interested in such work, I can help you
> getting started ;)

Joachim,

In our tree, all security or front-facing code must be maintained by
an interested individual/group.  If it isn't maintained eventually it
will become a hinderance towards other developments, or error prone
and therefore a risk factor.  It gets marginalized by other changes.
Then it gets the axe.

Every part of the tree needs believers who commit their time to
keeping that part good, or even better -- improving it.  Especially
relevant as minimum standards of quality rises.

You'll see an errata posted later today -- I think it is somewhat
related to this discussion.  I believe there is a minimum mindshare
required to keep code "good enough", and therefore present in the
tree, but a greater mindshare is required to make it high and of
increasing quality.  The code the mistake happened in, simply doesn't
have enough mindshare to have spotted the mistakes.

Expanding mindshare is a hard social problem, so I'm glad you mailed
in... hopefully you take the bait mpi has placed in the trap^W^W^W^W^W^W^W

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Dan Shechter-2
In reply to this post by Joachim Nilsson
I know I am about to be hammered here but...

Without reading the sources, and being a Cisco admin, I am asking this
question: What PIM got to do with the kernel? PIM is just a
signaling/routing protocol, like OSPF/BGP. It should just update the mroute
tables.

Is it about the register unicast?

On Sun, Dec 10, 2017 at 8:59 AM, Joachim Nilsson <[hidden email]>
wrote:

> Hi,
>
> my name i Joachim and I'm the current upstream maintainer of the
> original pimd[1] and mrouted[2] multicast routing daemons.
>
> First of all, I'd like to give a huge thank you to the OpenBSD team
> for all the hard work you put in with Stanford to relicense mrouted
> under a BSD license[4]!  I don't think you know this, but your work
> also freed pimd[1], which in large parts is based on mrouted.
>
> Now, I've got a few worried questions recently about the removal[3]
> of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
> removed it?  I'd be very happy if someone could just fill me in, or
> provide a pointer to a mailing list discussion (I couldn't find any).
> At the very least I'd like to have up to date information to provide
> my users.
>
> There are currently three major open source PIM implementations for
> UNIX that I know of: pimd[1] which today supports both PIM-SM and
> PIM-SSM, Xorp pimd[5] (PIM-SM only), and the Quagga PIM-SSM only
> pimd[6].  All of them support(ed) OpenBSD, and at least I tested
> regularly on OpenBSD.  I think the community could greatly benefit
> from keeping the PIM kernel support, however, I do understand that
> you primarily only support your in-tree applications, like mrouted.
>
> Best regards
>  /Joachim Nilsson
>
> [1]: https://github.com/troglobit/pimd/
> [2]: https://github.com/troglobit/mrouted/
> [3]: https://marc.info/?l=openbsd-cvs&m=148240469327159
> [4]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICE
> NSE
> [5]: https://github.com/greearb/xorp.ct/
> [6]: https://github.com/FRRouting/frr/
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

David Gwynne-5

> On 12 Dec 2017, at 02:41, Dan Shechter <[hidden email]> wrote:
>
> I know I am about to be hammered here but...
>
> Without reading the sources, and being a Cisco admin, I am asking this
> question: What PIM got to do with the kernel? PIM is just a
> signaling/routing protocol, like OSPF/BGP. It should just update the mroute
> tables.

i have wondered that too. maybe it still works?

>
> Is it about the register unicast?
>
> On Sun, Dec 10, 2017 at 8:59 AM, Joachim Nilsson <[hidden email]>
> wrote:
>
>> Hi,
>>
>> my name i Joachim and I'm the current upstream maintainer of the
>> original pimd[1] and mrouted[2] multicast routing daemons.
>>
>> First of all, I'd like to give a huge thank you to the OpenBSD team
>> for all the hard work you put in with Stanford to relicense mrouted
>> under a BSD license[4]!  I don't think you know this, but your work
>> also freed pimd[1], which in large parts is based on mrouted.
>>
>> Now, I've got a few worried questions recently about the removal[3]
>> of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
>> removed it?  I'd be very happy if someone could just fill me in, or
>> provide a pointer to a mailing list discussion (I couldn't find any).
>> At the very least I'd like to have up to date information to provide
>> my users.
>>
>> There are currently three major open source PIM implementations for
>> UNIX that I know of: pimd[1] which today supports both PIM-SM and
>> PIM-SSM, Xorp pimd[5] (PIM-SM only), and the Quagga PIM-SSM only
>> pimd[6].  All of them support(ed) OpenBSD, and at least I tested
>> regularly on OpenBSD.  I think the community could greatly benefit
>> from keeping the PIM kernel support, however, I do understand that
>> you primarily only support your in-tree applications, like mrouted.
>>
>> Best regards
>> /Joachim Nilsson
>>
>> [1]: https://github.com/troglobit/pimd/
>> [2]: https://github.com/troglobit/mrouted/
>> [3]: https://marc.info/?l=openbsd-cvs&m=148240469327159
>> [4]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICE
>> NSE
>> [5]: https://github.com/greearb/xorp.ct/
>> [6]: https://github.com/FRRouting/frr/
>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Claudio Jeker
On Tue, Dec 12, 2017 at 02:32:06PM +1000, David Gwynne wrote:

>
> > On 12 Dec 2017, at 02:41, Dan Shechter <[hidden email]> wrote:
> >
> > I know I am about to be hammered here but...
> >
> > Without reading the sources, and being a Cisco admin, I am asking this
> > question: What PIM got to do with the kernel? PIM is just a
> > signaling/routing protocol, like OSPF/BGP. It should just update the mroute
> > tables.
>
> i have wondered that too. maybe it still works?
>

The problem is that multicast needs a bit more then just a lookup table.
The signaling includes joining and leaving of groups but also traffic flow
information. PIM extended the ioctl interface that mrouted used to enable
some of the advanced features (and maybe also to just be a bit
better/different). I'm for sure no fan of the ioctl() interface used for
those protocols and would prefer to use a routing socket for that (but
that's just my opinion).

> >
> > Is it about the register unicast?
> >
> > On Sun, Dec 10, 2017 at 8:59 AM, Joachim Nilsson <[hidden email]>
> > wrote:
> >
> >> Hi,
> >>
> >> my name i Joachim and I'm the current upstream maintainer of the
> >> original pimd[1] and mrouted[2] multicast routing daemons.
> >>
> >> First of all, I'd like to give a huge thank you to the OpenBSD team
> >> for all the hard work you put in with Stanford to relicense mrouted
> >> under a BSD license[4]!  I don't think you know this, but your work
> >> also freed pimd[1], which in large parts is based on mrouted.
> >>
> >> Now, I've got a few worried questions recently about the removal[3]
> >> of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
> >> removed it?  I'd be very happy if someone could just fill me in, or
> >> provide a pointer to a mailing list discussion (I couldn't find any).
> >> At the very least I'd like to have up to date information to provide
> >> my users.
> >>
> >> There are currently three major open source PIM implementations for
> >> UNIX that I know of: pimd[1] which today supports both PIM-SM and
> >> PIM-SSM, Xorp pimd[5] (PIM-SM only), and the Quagga PIM-SSM only
> >> pimd[6].  All of them support(ed) OpenBSD, and at least I tested
> >> regularly on OpenBSD.  I think the community could greatly benefit
> >> from keeping the PIM kernel support, however, I do understand that
> >> you primarily only support your in-tree applications, like mrouted.
> >>
> >> Best regards
> >> /Joachim Nilsson
> >>
> >> [1]: https://github.com/troglobit/pimd/
> >> [2]: https://github.com/troglobit/mrouted/
> >> [3]: https://marc.info/?l=openbsd-cvs&m=148240469327159
> >> [4]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICE
> >> NSE
> >> [5]: https://github.com/greearb/xorp.ct/
> >> [6]: https://github.com/FRRouting/frr/
> >>
> >>
>

--
:wq Claudio

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Dan Shechter-2
Thanks for the info!

Forgot about few such examples,  such as sources don't signal so there is a
timeout counter for (s,g) that need to be monitored, traffic utilization
that might trigger SFP and I guess many more....

On Mon, Dec 11, 2017 at 11:33 PM, Claudio Jeker <[hidden email]>
wrote:

> On Tue, Dec 12, 2017 at 02:32:06PM +1000, David Gwynne wrote:
> >
> > > On 12 Dec 2017, at 02:41, Dan Shechter <[hidden email]> wrote:
> > >
> > > I know I am about to be hammered here but...
> > >
> > > Without reading the sources, and being a Cisco admin, I am asking this
> > > question: What PIM got to do with the kernel? PIM is just a
> > > signaling/routing protocol, like OSPF/BGP. It should just update the
> mroute
> > > tables.
> >
> > i have wondered that too. maybe it still works?
> >
>
> The problem is that multicast needs a bit more then just a lookup table.
> The signaling includes joining and leaving of groups but also traffic flow
> information. PIM extended the ioctl interface that mrouted used to enable
> some of the advanced features (and maybe also to just be a bit
> better/different). I'm for sure no fan of the ioctl() interface used for
> those protocols and would prefer to use a routing socket for that (but
> that's just my opinion).
>
> > >
> > > Is it about the register unicast?
> > >
> > > On Sun, Dec 10, 2017 at 8:59 AM, Joachim Nilsson <[hidden email]>
> > > wrote:
> > >
> > >> Hi,
> > >>
> > >> my name i Joachim and I'm the current upstream maintainer of the
> > >> original pimd[1] and mrouted[2] multicast routing daemons.
> > >>
> > >> First of all, I'd like to give a huge thank you to the OpenBSD team
> > >> for all the hard work you put in with Stanford to relicense mrouted
> > >> under a BSD license[4]!  I don't think you know this, but your work
> > >> also freed pimd[1], which in large parts is based on mrouted.
> > >>
> > >> Now, I've got a few worried questions recently about the removal[3]
> > >> of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
> > >> removed it?  I'd be very happy if someone could just fill me in, or
> > >> provide a pointer to a mailing list discussion (I couldn't find any).
> > >> At the very least I'd like to have up to date information to provide
> > >> my users.
> > >>
> > >> There are currently three major open source PIM implementations for
> > >> UNIX that I know of: pimd[1] which today supports both PIM-SM and
> > >> PIM-SSM, Xorp pimd[5] (PIM-SM only), and the Quagga PIM-SSM only
> > >> pimd[6].  All of them support(ed) OpenBSD, and at least I tested
> > >> regularly on OpenBSD.  I think the community could greatly benefit
> > >> from keeping the PIM kernel support, however, I do understand that
> > >> you primarily only support your in-tree applications, like mrouted.
> > >>
> > >> Best regards
> > >> /Joachim Nilsson
> > >>
> > >> [1]: https://github.com/troglobit/pimd/
> > >> [2]: https://github.com/troglobit/mrouted/
> > >> [3]: https://marc.info/?l=openbsd-cvs&m=148240469327159
> > >> [4]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/
> mrouted/LICE
> > >> NSE
> > >> [5]: https://github.com/greearb/xorp.ct/
> > >> [6]: https://github.com/FRRouting/frr/
> > >>
> > >>
> >
>
> --
> :wq Claudio
>
Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Joachim Nilsson
In reply to this post by Martin Pieuchot
On Sun, 2017-12-10 at 19:14 +0100, Martin Pieuchot wrote:

> On 10/12/17(Sun) 17:59, Joachim Nilsson wrote:
> > [...]
> > Now, I've got a few worried questions recently about the removal[3]
> > of PIM support in OpenBSD, so I thought I'd ask here.  Why have you
> > removed it?
> [...]
> Last year rzalamena@ rewrote the multicast code to reduce the number
> of global data structures, add rdomain support and sync v6 with v4.
> When he started working on that we considered that adapting
> unmaintained and non-compiled PIM code was too much extra
> work.  That's why this code has been removed.

I see, well that's completely understandable!  I've noticed this
lack of people interested in learning/maintaining multicast in
the Linux world as well, and I agree.  There's no point trying to
keep support if there's nobody there to help out doing the hard
work testing and reviewing patches.

> I'd welcome anyone interested in PIM to work on it.  I'd be great to
> have proper kernel support that meets OpenBSD standard and have it
> enabled by default.  If you're interested in such work, I can help
> you getting started ;)

Heh, well there's that Christmas vacation coming up soon.  I might
very well have a look at it then :-)

In the meantime, thank you so much for taking the time to respond!

Best regards
 /Joachim

Reply | Threaded
Open this post in threaded view
|

Re: Removal of PIM support in kernel

Joachim Nilsson
In reply to this post by Theo de Raadt-2
On Sun, 2017-12-10 at 12:48 -0700, Theo de Raadt wrote:
> In our tree, all security or front-facing code must be maintained by
> an interested individual/group.  If it isn't maintained eventually it
> will become a hinderance towards other developments, or error prone
> and therefore a risk factor.  It gets marginalized by other changes.
> Then it gets the axe.

Completely understandable! :)

> Every part of the tree needs believers who commit their time to
> keeping that part good, or even better -- improving it.  Especially
> relevant as minimum standards of quality rises.

+1

> [...]
> Expanding mindshare is a hard social problem, so I'm glad you mailed
> in... hopefully you take the bait mpi has placed in the
> trap^W^W^W^W^W^W^W

He he, well we'll see ;-)

It's not the first time I've considered pitching in with OpenBSD,
and seeing as multicast is a bit of hobby of mine, as well as part
of my daily work, it could very well be what pulls me in.

Thank you for your thorough reply!

Best regards
 /Joachim