[Fwd: [Click] multicast support]
Eddie Kohler
kohler at cs.ucla.edu
Sun Jul 11 10:24:00 EDT 2004
Second try...
-------- Original Message --------
Subject: Re: [Xorp-dev] [Fwd: [Click] multicast support]
Date: Sun, 11 Jul 2004 02:22:25 -0700
From: Pavlin Radoslavov <pavlin at icir.org>
To: Eddie Kohler <kohler at CS.UCLA.EDU>
CC: XORP Developers <xorp-dev at icir.org>
> Any advice for this guy?
Eddie,
Below is a list with the features that come to mind right now:
* IGMP support:
- Host-side, in-kernel implementation. Ideally, it would be
IGMPv1,v2, and v3
- Interface to send and receive IGMP messages by the user-space
process. E.g., typically, the IGMP router-side implementation
is done in user-space, and the user-space process needs a
mechanism to send/receive the IGMP messages.
* Multicast forwarding support:
- Creation and manipulation of the multicast forwarding
table. E.g., addition and deletion of multicast forwarding
entries, etc. In UNIX, the granulatiry of operation is per
(S,G) entry, but the Click implemetation may choose to support
(*,G) entries, replacing the whole forwarding table at once,
etc.
- Creation and deletion of virtual interfaces that can be used
for multicast forwarding. Such virtual interface can correspond
to an existing physical interface, but it may be a
multicast-specific interface as well (e.g., the PIM-SM specific
PIM Register interface). Note that this add/delete of multicast
virtual interfaces is based on the UNIX model for multicast
forwarding. The Click implementation may choose to use a
different model if the UNIX model is not adequate.
- Implementation of a communication mechanism for
multicast-related events in the kernel, and the user-space
process. For example, in UNIX there are upcalls like NOCACHE
and WRONGVIF when a multicast data packet is received, but
there is no matching multicast forwarding entry, or when the
data packet is received on an interface it shoudn't arrive on.
- Support for in-kernel bandwidth monitoring and upcalls (e.g.,
if the bandwidth is above or below a threshold).
- Obtaining various statistics from the kernel (number of
forwarded data packets, etc).
* PIM in-kernel support:
- Enabling/disabling PIM
- Sending and receiving of PIM control packets
- Support for creation and deletion of the PIM-SM specific PIM
Register interface
- Support for kernel-level PIM Register data messages
encapsulation and decapsulation.
* DVMRP in-kernel support (optional):
- Support for the DVMRP-specific multicast tunnels.
For more information about the UNIX API see the multicast(4) and
pim(4) manual pages in recent FreeBSD releases. The manual pages are
also available online from http://www.freebsd.org/cgi/man.cgi
In general, styding the multicast implementation in
FreeBSD is a good starting point to become familiar with the
requirements. Though, the UNIX implementation/model has its own
limitations, hence the Click implementation can try to improve on
those limitations.
Pavlin
More information about the click
mailing list