< draft-ietf-malloc-madcap-nest-opt-04.txt   draft-ietf-malloc-madcap-nest-opt-05.txt >
Malloc Working Group Roger Kermode Malloc Working Group Roger Kermode
Internet Engineering Task Force Motorola Internet Engineering Task Force Motorola
INTERNET-DRAFT INTERNET-DRAFT
19 April 2000 19 April 2000
Expires 19 October 2000 Expires 27 December 2000
MADCAP Multicast Scope Nesting State Option MADCAP Multicast Scope Nesting State Option
<draft-ietf-malloc-madcap-nest-opt-04.txt> <draft-ietf-malloc-madcap-nest-opt-05.txt>
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance This document is an Internet-Draft and is in full conformance
with all provisions of Section 10 of RFC2026. with all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as other groups may also distribute working documents as
Internet-Drafts. Internet-Drafts.
skipping to change at page 2, line 22 skipping to change at page 2, line 22
1.3 Terminology. . . . . . . . . . . . . . . . . . . 5 1.3 Terminology. . . . . . . . . . . . . . . . . . . 5
2. Multicast Nested Scoping State. . . . . . . . . . . . 6 2. Multicast Nested Scoping State. . . . . . . . . . . . 6
3. Multicast Scope Nesting State Option. . . . . . . . . 6 3. Multicast Scope Nesting State Option. . . . . . . . . 6
3.1 Multicast Scope List Option . . . . . . . . . . 6 3.1 Multicast Scope List Option . . . . . . . . . . 6
3.2 Representing the Multicast Scope Nesting State . 7 3.2 Representing the Multicast Scope Nesting State . 7
3.3 Multicast Scope Nesting State Option Usage . . . 8 3.3 Multicast Scope Nesting State Option Usage . . . 8
4. Managing Dynamic Nested Scopes. . . . . . . . . . . . 9 4. Managing Dynamic Nested Scopes. . . . . . . . . . . . 9
4.1 Updating State for Dynamic Nested Scopes due to 4.1 MADCAP Server processing of MZAP messages. . . . 10
4.2 Updating State for Dynamic Nested Scopes due to
Timer Expiration . . . . . . . . . . . . . . 10 Timer Expiration . . . . . . . . . . . . . . 10
4.2 MADCAP Server processing of MZAP messages. . . . 10
5. Multicast Scope Nesting State Option Format . . . . . 11 5. Multicast Scope Nesting State Option Format . . . . . 11
6. Constants . . . . . . . . . . . . . . . . . . . . . . 11 6. Constants . . . . . . . . . . . . . . . . . . . . . . 11
7. Security Considerations . . . . . . . . . . . . . . . 12 7. Security Considerations . . . . . . . . . . . . . . . 12
8. IANA Considerations . . . . . . . . . . . . . . . . . 12 8. IANA Considerations . . . . . . . . . . . . . . . . . 12
9. Acknowledgements. . . . . . . . . . . . . . . . . . . 12 9. Acknowledgements. . . . . . . . . . . . . . . . . . . 12
skipping to change at page 7, line 22 skipping to change at page 7, line 22
o TTL: o TTL:
The TTL to be used when sending messages to this scope. The TTL to be used when sending messages to this scope.
o Name(s): o Name(s):
One or more language specific names for the scope. One or more language specific names for the scope.
3.2 Representing the Multicast Scope Nesting State 3.2 Representing the Multicast Scope Nesting State
Given a Multicast Scope List containing descriptions for n scopes one Given a Multicast Scope List containing descriptions for n scopes one
can form n(n-1)/2 pairings. As was shown in section 2.1.1 each can form n(n-1)/2 pairings. As was shown in section 2 each pairing
pairing can take on one of four possible states. Thus, for a list of can take on one of four possible states. Thus, for a list of n scopes
n scopes there exists 2 pieces of information for each pairing for a there exists 2 pieces of information for each pairing for a total of
total of n(n-1) pieces of information regarding which scopes do and n(n-1) pieces of information regarding which scopes do and do not
do not nest inside each other. This information is most easily and nest inside each other.
efficiently conveyed in a compressed bit matrix as shown in section
2.4.
The Multicast Nesting State option must convey a total of n(n-1)
pieces of state, where n is the number of scopes listed in the
preceding Multicast Scope List Option. This information will be
sparse, since at most only a few scopes will nest.
There are several ways to represent this information using full There are several ways to represent this state using full matrices,
matrices, sparse-matrices, and using lists of variable length lists. sparse-matrices, and using lists of variable length lists. In the
In the interests of maximal efficiency and flexibility, the Multicast interests of maximal efficiency and flexibility, the Multicast
Nesting State Option uses a bit-packed matrix approach. In this Nesting State Option uses a bit-packed matrix approach. In this
approach a matrix is constructed using pieces of X/Y state where X is approach a matrix is constructed using pieces of X/Y state where X is
the row and Y is the column. A "1" in the matrix means that the the row and Y is the column. A "1" in the matrix means that the
relationship "row nests inside column" is true, while a "0" means relationship "row nests inside column" is true, while a "0" means
that this relationship is either false or indeterminate. The that this relationship is either false or indeterminate. The
diagonal of the matrix is removed, since this is the case where X is diagonal of the matrix is removed, since this is the case where X is
the same as Y, and each row is then zero-padded to the next byte the same as Y, and each row is then zero-padded to the next byte
boundary to give the final representation. boundary to give the final representation.
An example of how a matrix would be constructed for the following An example of how a matrix would be constructed for the following
skipping to change at page 8, line 44 skipping to change at page 8, line 44
The "Multicast Scope Nesting State" option is dependent upon the The "Multicast Scope Nesting State" option is dependent upon the
"Multicast Scope List" option. This decision was made according to "Multicast Scope List" option. This decision was made according to
the following reasoning. The Multicast Nest State Option requires the following reasoning. The Multicast Nest State Option requires
that the scopes be identified along with their nesting properties. that the scopes be identified along with their nesting properties.
Since the information needed to describe a scope is contained in the Since the information needed to describe a scope is contained in the
Multicast Scope List option and this information can change, the Multicast Scope List option and this information can change, the
MADCAP messages that contain the Multicast Scope Nesting State option MADCAP messages that contain the Multicast Scope Nesting State option
must be atomic and therefore must include the "Multicast Scope List must be atomic and therefore must include the "Multicast Scope List
Option." Option."
Thus, the "Multicast Scope Nesting State" option MAY only be used in Thus, the "Multicast Scope Nesting State" option MUST only be used in
messages that carry the "Multicast Scope List" option, specifically: messages that carry the "Multicast Scope List" option, specifically:
ACK (in response to GETINFO) ACK (in response to GETINFO)
Since the Multicast Nest State option is dependent upon the Multicast Since the Multicast Nest State option is dependent upon the Multicast
Scope List option, it MUST NOT be included without the Multicast Scope List option, it MUST NOT be included without the Multicast
Scope List option. Scope List option.
Clients that need to explicitly learn the nesting relationships Clients that need to explicitly learn the nesting relationships
between scopes should therefore send a GETINFO message to the server between scopes should therefore send a GETINFO message to the server
with the "Multicast Scope List" AND "Multicast Scope Nesting State" with the "Multicast Scope List" AND "Multicast Scope Nesting State"
option codes listed in an Option Request option. option codes listed in an Option Request option.
4. Managing Dynamic Nested Scopes 4. Managing Dynamically Nested Scopes
In the case where scopes are dynamically configured and hence the Scopes can either be manually or automatically configured. When
scope boundaries and nesting relationships may change, MADCAP servers scopes are manually configured the relationships between them will
MUST include a mechanism to allow for: also be static, assuming that network does not partition due to
router failure. Should the network partition or heal after a
partition it is highly likely that the nesting relationships will
change. Scope nesting relationships will also change as a network is
brought up or when a change is deliberately made to a router either
through manual reconfiguration or by some automatic means.
To ensure that nesting relationships are correctly determined when
scope boundaries undergo change MADCAP servers MUST include a
mechanism that allow for:
a) whether the nesting decision is still under consideration or a) whether the nesting decision is still under consideration or
can be considered definitive, and therefore be announced to can be considered definitive, and therefore be announced to
MADCAP clients. MADCAP clients.
b) whether one or both scopes for a particular nesting state entry b) whether one or both scopes for a particular nesting state entry
have been destroyed, and hence whether the nesting state should have been destroyed, and hence whether the nesting state should
therefore be discarded. therefore be discarded.
c) whether the scope boundaries have changed so that whereas scope c) whether the scope boundaries have changed so that whereas scope
skipping to change at page 10, line 5 skipping to change at page 10, line 5
The NEST_NO_DECISION_TIMER timer will also be used to timeout X/Y = The NEST_NO_DECISION_TIMER timer will also be used to timeout X/Y =
"false" state to allow X/Y to be reset to true in the event that the "false" state to allow X/Y to be reset to true in the event that the
boundaries for zone X and zone Y change so that zone X now nests boundaries for zone X and zone Y change so that zone X now nests
inside zone Y. inside zone Y.
The second timer ZONES_EXIST_TIMER will be used to timeout the The second timer ZONES_EXIST_TIMER will be used to timeout the
internal state between two scopes in the event that one or both internal state between two scopes in the event that one or both
scopes are destroyed. scopes are destroyed.
4.1 Updating State for Dynamic Scopes due to timer expiration. 4.1 MADCAP Server processing of MZAP messages
When MZAP is used to discover the nesting relationship between scopes
MADCAP servers will eavesdrop into the MZAP messages that are
periodically transmitted by the Zone Border Routers (ZBR) during the
normal course of administrative scope boundary maintenance. In this
way they will be able to learn which scopes exist (via Zone
Announcement Messages, ZAMs) and which of these scopes do not nest
(via Not Inside Messages, NIMs). This state must be cached within the
MADCAP server.
When a MADCAP server S receives a NIM from a ZBR containing
information that scope X does not nest in scope Y, it MUST update its
internal state in the following manner.
1) S MUST update its internal X/Y state to "false".
2) S MUST restart NEST_NO_DECISION_TIMER for the newly updated
X/Y state.
4.2 Updating State for Dynamic Scopes due to timer expiration.
MADCAP servers will update X/Y nesting state upon the expiration of MADCAP servers will update X/Y nesting state upon the expiration of
timers in the following manner. timers in the following manner.
o If the NEST_NO_DECISION_TIMER expires for a state entry X/Y AND no o If the NEST_NO_DECISION_TIMER expires for a state entry X/Y AND no
messages have been received that indicate scope X does not nest MADCAP messages have been received that indicate scope X does not
inside scope Y, a MADCAP Server, S, MAY conclude that scope X nest inside scope Y, a MADCAP Server, S, MUST conclude that scope
X
nests inside scope Y. As a result S will change X/Y from "false" nests inside scope Y. As a result S will change X/Y from "false"
to "true". to "true".
When a state change from "false" to "true" occurs for X/Y, S must When a state change from "false" to "true" occurs for X/Y, S must
also start the ZONES_EXIST_TIMER timer for X/Y. The also start the ZONES_EXIST_TIMER timer for X/Y. The
ZONES_EXIST_TIMER should only reset when a Zone Announcement ZONES_EXIST_TIMER should only reset when a Zone Announcement
Message Message
(ZAM) has been received for both zone X and zone Y since the (ZAM) has been received for both zone X and zone Y since the
last time it was restarted. This ensures that both zone X and last time it was restarted. This ensures that both zone X and
zone Y are known to still exist. zone Y are known to still exist.
o If the ZONES_EXIST_TIMER expires for a state entry X/Y, S o If the ZONES_EXIST_TIMER expires for a state entry X/Y, S
SHOULD conclude that either zone Y or zone X no longer exists and SHOULD conclude that either zone Y or zone X no longer exists and
hence that both X/Y and Y/X state should be destroyed. hence that both X/Y and Y/X state should be destroyed.
4.2 MADCAP Server processing of MZAP messages
When MZAP is used to discover the nesting relationship between scopes
MADCAP servers will eavesdrop into the MZAP messages that are
periodically transmitted by the Zone Border Routers (ZBR) during the
normal course of administrative scope boundary maintenance. In this
way they will be able to learn which scopes exist (via Zone
Announcement Messages, ZAMs) and which of these scopes do not nest
(via Not Inside Messages, NIMs). This state must be cached within the
MADCAP server.
When a MADCAP server S receives a NIM from a ZBR containing
information that scope X does not nest in scope Y, it MUST update its
internal state in the following manner.
1) S MUST update its internal X/Y state to "false".
2) S MUST restart NEST_NO_DECISION_TIMER for the newly updated
X/Y state.
5. Multicast Scope Nesting State Option Format 5. Multicast Scope Nesting State Option Format
Code Len Count Nest State Matrix Code Len Count Nest State Matrix
+-----+-----+-----+-----+-----+-----+-...-+-----+ +-----+-----+-----+-----+-----+-----+-...-+-----+
| OPTID | p | m | N1 | | Nm | | OPTID | p | m | N1 | | Nm |
+-----+-----+-----+-----+-----+-----+-...-+-----+ +-----+-----+-----+-----+-----+-----+-...-+-----+
Code: 16 bits Code: 16 bits
Option identifier (OPTID), to be assigned by IANA. Option identifier (OPTID), to be assigned by IANA.
Len: 16 bits Len: 16 bits
The length of the option in bytes. The length of the option in bytes.
Count: 8 bits Count: 8 bits
The number of zones present in the Nest State Matrix. This value The number of zones present in the Nest State Matrix. This value
MUST be identical to the Count field in the preceding Multicast MUST be identical to the Count field in the preceding Multicast
State List option. State List option. If this is not the case the scope nesting
state information MUST BE ignored.
Nest State Matrix: Nest State Matrix:
The compressed bit-packed representation of the matrix, derived The compressed bit-packed representation of the matrix, derived
in the same manner as shown in Figure 4. Note for N scopes in the same manner as shown in Figure 4. Note for N scopes
the compressed matrix will be Nxceil((N-1)/8) bytes long. The the compressed matrix will be N times ceil((N-1)/8) bytes long,
scopes corresponding to the rows and columns of this matrix where ceil() is the function that rounds up to the nearest
integer.
The scopes corresponding to the rows and columns of this matrix
list in the same order as they appear in the Multicast Scope list in the same order as they appear in the Multicast Scope
List Option. List Option.
6. Constants 6. Constants
[OPTID] The option identifier for the Multicast Scope Nesting State [OPTID] The option identifier for the Multicast Scope Nesting State
option, to be assigned by IANA. option, to be assigned by IANA.
[NEST_NO_DECISION_TIMER] The time after which a MADCAP server or [NEST_NO_DECISION_TIMER] The time after which a MADCAP server or
client can assume that a message announcing that two zones client can assume that a message announcing that two zones
do not nest will not be received. The length of this timer do not nest should not be received. The length of this timer
is dependent upon the zone announcement protocol used to is dependent upon the zone announcement protocol used to
inform the MADCAP router of which zones currently exist. inform the MADCAP router of which zones currently exist.
When MZAP [RFC2776] is used this value should be greater than When MZAP [RFC2776] is used this value should be greater than
the MZAP timeout value NIM-INTERVAL +30%. This corresponds the MZAP timeout value NIM-INTERVAL +30%. This corresponds
to a timeout value of 1800 + 30% = 2340 seconds (39 minutes). to a timeout value of 1800 + 30% = 2340 seconds (39 minutes).
[ZONES_EXIST_TIMER] The time after which a MADCAP server or client [ZONES_EXIST_TIMER] The time after which a MADCAP server or client
should assume that the zone in question does not exist when should assume that the zone in question does not exist when
zones are detected dynamically. The length of this timer is zones are detected dynamically. The length of this timer is
dependent upon the zone announcement protocol used to inform dependent upon the zone announcement protocol used to inform
 End of changes. 16 change blocks. 
51 lines changed or deleted 56 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/