2.7.8 Multicast-Address Allocation (malloc)

NOTE: This charter is a snapshot of the 44th IETF Meeting in Minneapolis, Minnesota. It may now be out-of-date. Last Modified: 06-Jan-99


Steve Hanna <steve.hanna@sun.com>
David Thaler <dthaler@microsoft.com>

Transport Area Director(s):

Scott Bradner <sob@harvard.edu>
Vern Paxson <vern@aciri.org>

Transport Area Advisor:

Vern Paxson <vern@aciri.org>

Technical Advisor(s):

Thomas Narten <narten@raleigh.ibm.com>

Mailing Lists:

General Discussion:malloc@catarina.usc.edu
To Subscribe: malloc-request@catarina.usc.edu
Archive: catarina.usc.edu/pub/multicast/malloc/

Description of Working Group:

Note: This Working Group is co-chartered in the Internet Area.

Multicast address allocation is an essential part of using IP multicast. Multicast addresses are an even more limited resource than unicast addresses, and must be allocated dynamically if they are to satisfy expected demand. To this end, the MALLOC WG will define three protocols which work together to form a global dynamic multicast address allocation mechanism. These protocols will be:

- a "host to Address Allocation Server" protocol used by a host to obtain one or more multicast addresses from an address allocation server within its domain.

- an intra-domain server to server protocol that address allocation servers within the same domain can use to ensure that they do not give out conflicting addresses.

- an inter-domain protocol to provide aggregatable multicast address ranges to domains, which the servers in that domain can then allocate individual multicast addresses out of. This protocol will work in conjunction with the IDMR WG's Border Gateway Multicast Protocol to provide a scalable inter-domain multicast routing solution.

Although mechanisms for enforcing policies for multicast address allocation may be considered, setting any such policies is not within the scope of this WG. Alternative multicast models are also out of scope.

Goals and Milestones:

May 98


Repost the architectural framework, including the abstract API model for allocating addresses, as WG Internet-Draft(s).

Aug 98


Report on simulation and implementation efforts with existing protocol proposals. Address any problems in the specifications that were found.

Oct 98


Post MIBs for the three levels as Internet-Drafts.

Dec 98


Meet at Orlando IETF. Review and finalize the host-server protocol.

Jan 99


Submit the host-server protocol to the IESG for consideration as a Proposed Standard.

Jan 99


Submit the MIB for the host-server protocol to the IESG for consideration as a Proposed Standard.

Jan 99


Submit the architecture and abstract API document(s) to the IESG for consideration as Informational.

Apr 99


Submit the inter-domain protocol to the IESG for consideration as a Proposed Standard.

Apr 99


Submit the MIB for the intra-domain protocol to the IESG for consideration as a Proposed Standard.

Apr 99


Submit the intra-domain protocol to the IESG for consideration as a Proposed Standard.

Apr 99


Submit the MIB for the inter-domain protocol to the IESG for consideration as a Proposed Standard.


No Request For Comments

Current Meeting Report

Minutes of MALLOC Working Group
IETF 44 (Minneapolis, MN)
Tuesday, March 16, 1999

Minutes reported by S. Casner and S. Hanna.


Agenda Bashing




Scope Nesting


AAP Update


MASC Status


Static Allocation




Milestone Update


I. MADCAP Update

MADCAP was pretty well settled at last IETF, so it has gone to WG last call in January and IETF last call last week. Soon expected to be published as Proposed Standard.

Abstract API update: The draft is unchanged since November, but Ross commits to revising the draft to reflect changes in MADCAP by next month. The revised draft is to go to last call after next IETF.

II. MADCAP Scope Nesting Option

Problem: TTL scoping doesn't work for large scopes. We go to admin scoping to solve this, but then we need to be able to do nesting of scopes to have the same expanding ring effect that TTLs provided.

To do nested scopes, need three protocols: MZAP, this proposal, and SADP. MADCAP lists the scopes enclosing a given point, but doesn't provide nesting info. A pair of scopes A and B may have the relationship A<B, B<A, A<>B, or A=B. Listing all the pairwise combinations is too long. The list is sparse because not all scopes will nest, so we could do some sort of list of pairs, a dense matrix, or a sparse matrix (list of lists). To keep things simple, and based on the assumption that the number of scopes is O(10), the proposal is to use a dense binary matrix representation with the diagonal deleted and padded to an even byte boundary per row. The bit string is 1 wherever the scope corresponding to the row element is nested in the scope represented by the column.

Consensus was that this should become a working group document headed for Proposed Standard.

III. AAP Status

AAP is an intradomain address allocation protocol that works via periodic announcements, based on SAP. It is used be MADCAP servers (and others) to communicate within a domain. The original draft was by Mark Handley. Steve Hanna is joining now as a co-author to help move it forward to last call by August.

Open issues:

156. Need IPv6 support (MADCAP has it)
157. Want to be able to represent allocated addresses as ranges to reduce message size; currently have to list addresses individually, and we expect them to be allocated and used in blocks.
158. Need signature format; there are some ideas but no strong candidates yet.
159. Need server mobility, like DHCP failover. MADCAP uses a secret representing allocation ownership to prevent someone else taking action on the allocation. How to communicate these secrets from the server that does the allocation to the backup servers? Use a cryptographic hash of client ID so it can be communicated in the clear.

Mark Handley raised the issue that the client identifier may not have cryptographic randomness, so it may be possible to search the client id space to find one that matches the hash.

160. Use MADCAP message format for AAP? This would allow more shared code. On the other hand, the functions are different, so code savings might not be large.

Handley: This might cause confusion. Even though the syntax of the messages would be the same for MADCAP and AAP, the semantics are totally different.

Thaler: MADCAP has an extensible options-based format, which is convenient.

161. Shall we change the name of AAP? The relationship to MADCAP is not obvious, and the server-to-server nature is not obvious. Hanna has not heard a name he likes better yet. Take this to the list for suggestions. Want to resolve in next few weeks.

IV. MASC Implementation & Status

MASC functions:
1. Associate group ranges with AS's, hierarchically allocated from parents to children.
2. Announce group ranges to MADCAP servers using AAP.

To implement a MASC server, MUST implement MASC protocol and part of AAP (the part that handles announcement of addresses). SHOULD also implment MZAP.

Overview of the implementation design: three layers
162. communication upward with parent domain via MASC
163. my own domain (state mainenance)
164. communication with child domain via MASC, also AAP to the local domain

Working on implementation as a stand-alone server. MASC protocol is done, AAP and MZAP not yet. 30% of 10000 lines is MASC. TODO: MASC QUERY and RESPONSE debug msgs. Why not just use SNMP? It's faster and easier to implement MASC's own messages; could do both.

Thaler - More important than faster and easier is that you can get an answer from more remote domains, as mrinfo can do for multicast routers. SNMP is better for looking at nodes in one's own domain. Pavlin says, yes, we do want to have access to other domains, especially for debugging. This access can be turned off when desired. Maybe these messages should be in a separate draft as a feature to use only during debugging stage. Needs to do testing, and implement AAP, MZAP.

Stable Storage format

MASC will run on BG(M)P routers that in general do not have stable storage. A reboot of one node is not a problem because info can be restored from other nodes so long as you trust your neighbors with your internal state; but if all reboot at once, info is lost.

Another solution is to use AAP to store internal state on a MADCAP server that does have a disk. This is more complicated, and can record only part of the information that MASC has (PREFIX_IN_USE and allocated-by-madcap addresses). Handley: This doesn't complicate AAP because it needs this info anyway.

Third solution is to run at least one diskful MASC node, maybe in a non-router. But this has a configuration problem: normally MASC peering of the routers is implicit in BG(M)P peering; adding a non-router requires configuration. Can solve this with UDP multicast of MASC OPEN messages from the diskful server; then each MASC router establishes a TCP connecion back to the diskful node.

Handley: There is a problem with this because there could be a conflict between what one learns from AAP and from MASC peers. Those need to be consistent. Thinks that MASC should solve this problem, rather than pushing it to AAP. The info is signed from MASC to AAP, and the same info is returned, so it should not get messed up unless one lies to oneself. Not strongly in favor of one solution or other, but we should figure out one way to do it. Having two different implementations may still work, but there is the possibility of confusion about the architecture.

Thaler: Issue if aap servers also reboot at same time? May need more discussion on the list.

V. Static Allocation in the 226/8 Address Range

At MADDOGS meeting in Dallas at end of February, address allocation was discussed among several other topics. Dave has begun to question the assumption that there is not a lot of IPv4 multicast space. When broadcast.com said they needed a lot of addresses, they meant 1000. Yet the space is 256 million. So, there was a proposal from Peter Lothberg to get an experimental allocation of 226/8, using AS number as middle 16 bits and thereby allocating a /24 to each AS.

Subsequently, Dave decided the space could be used more efficiently since not al AS's will need the same allocation of space. Lothberg figured this didn't matter because this is a test of the MADCAP and AAP mechanisms, not a real test of allocation. Meyer proposes using a similar philosophy to 225/8, where that is for an experiment with dynamic allocation and 226/8 is an experiment with static allocation. Is there really a near-to-immediate term shortage? Stipulate all the advantages of dynamic assignment; this is not questioned, but it is basicaly optimal packing/aggregation.

Handley: Problem of static allocation is fragmentation over time. Suggests using a /8 adjacent to the 232/8 (which was allocated to VMTP and is now used for Express) so that 225/8 can be allowed to grow upward if it is successful, and 239/8 can grow downward if needed.

Note this uses all of the mechanism of allocation except MASC (that is, AAP and MADCAP). The proposal is to reserve bit 8 to avoid consuming all of this allocation at once. Let the registries work out allocation of the remaining space; the issues are the same as they have done for unicast addresses. Perhaps because of route scaling problems there won't be a very large number of small groups (use multiple unicasts instead), so maybe we don't need as many addresses as thought.

165. Want to know if registry is useful as allocation mechanism
166. Want to enable the entities that need addresses right away
167. Works with AAP and MADCAP
168. 226/8 is and experiment along the lines of RFC1797 and RFC2374
169. Proposes to ask IANA for allocation
170. What to do with the document? (Work item of MALLOC or MBONED?)

Casner: Need to have a lifetime on those registrations, otherwise it will be too hard to get them back.

Handley: Agrees. The allocations should be explicitly timed using the mechanisms of AAP and MADCAP.

Thaler: This is important so that we can get all the lower protocols exercised. Munil Shah's implementation of the MADCAP server will require a lifetime to be entered on ranges that are manually configured into the server. Also, on AS numbers versus the registry plan: the motivation for AS idea is no politics. Proposes that the part of space with bit 8 clear should follow Lothberg's original AS plan. This makes it very easy for debugging to see the AS number in the middle. Note that debugging of multicast is hard, so this has some value.

Meyer: Yes, this would get it off the ground right away, but provide a backup mechanism through registry to get more if the AS allocation was not sufficient.

Handley: The AS mechanism is good because it doesn't start down the slippery slope of manual allocation. Williamson: Why not ask IANA for two /8's? Meyer: No, we don't need that much space.

Thaler: Don't want to have to ask IANA for two. We already got 225/8, and we don't want to seem like we don't know what we're doing.

Meyer: Doesn't like sharing between AS and registry allocation because of the posibility that AS's may be allocated in the high half.

Thaler: Want WG consensus on whether this should be a MALLOC document. Otherwise it might go to mboned, which might seem like competition and conflict between working groups.

Meyer: MALLOC is where the allocation experience is.

Kermode: Agrees it should be here; needs to be carefully labeled as an experiment. Consensus was that this should become a MALLOC WG doc.

Meyer: Will repost with AS idea becoming more a part of it, but with some flexibility.

Handley: Experimental status is for protocols; maybe this should be BCP?

Several people disagreed. BCP indicates it is a best practice, which this is not. Consensus was for experimental status.


Report on comments since the January draft. The goal is to be able to configure the multicast address allocation servers, and monitor health and utilization of clients and servers. Two functions:

Configuration -- Need to be able to manually configure scopes until routers begin using MZAP:
171. list of scopes (ranges, lifetimes)
172. names of scopes

Monitoring -- What questions do we want to be able to ask?
173. how full is a scope
174. who's using it
175. who has particular addresses
176. are requests being met

These goals drive the design of the MIB.

Open question for the working group is whether there should be one MIB or multiple MIBs: A MAAS server has both MADCAP and AAP interacting with the database; should the MIB deal with configuration functions, MADCAP, and AAP separately? There are some protocol-specific queries one might make, e.g., how many requests of a specific type. Does anyone have opinions on this philosophical question of MIB design? Current design doesn't do protocol specific functions and concentrates on the database and configuration, all one MIB.

Review of the MIB design:

177. A few scalars for configuration
178. Scope table which tracks address blocks and their states; need to add flags from MZAP messages, and stats on protocol specific messages to know how the MADCAP and AAP protocols are behaving. Scope name table: scope, language, name Needs change to make "default" boolean be flags to allow expansion for other flags.
179. Request table: scope, lease id, start/stop times, # addresses, state, who requested. Allows easily answering "who's using up the space?"
180. Address block table: lease id, first address and number of addresses Allows easily answering "who allocated address x.x.x.x?" Maps back into the request table via lease id.

181. Are we able to configure everything we need to? Note that implementation specific configuration doesn't belong in MIB.
182. Are there other diagnostic questions we will want to ask?

Kermode: Want to be able to query to find out the scope nesting, i.e., what relationships between scopes. This was noted. Also feels one MIB is right.

VII. Charter/Milestones Update

We are approaching the end of the existing milestone timeline in April, so we need to update it:

Architectural framework update to be moved to Apr 99. The next few milestones are done. Since MIB was later than its original date of Oct 98, its Apr 99 milestone moves to Aug 99. Abstract API changes from Jan to August for going to IESG. ISP's are less sure about top levels of the MALLOC architecture than lower layers, so maybe the architecture doc should talk about top level being experimental. Want architecture doc to go to IESG by August also. AAP also August. Change inter-domain protocol (MASC) to experimental, and take Meyer's proposal to experimental also, in parallel. General agreement with this course of action. MASC MIB: if experimental, may not need to be a WG work item.

So, presented list of revised milestones. Several docs to be updated in April. At Oslo, nail down intra- and inter-domain protocols (latter as experimental). August submit all the rest of the documents.

Hanna: any of these that are ready sooner will go sooner.

No objections, will be sent to ADs.


Multicast Address-Set Claim (MASC) Implementation
Multicast Address-Set Claim (MASC) Stable Storage