draft-ietf-ipngwg-pppext-ipv6cp-01.txt | draft-ietf-ipngwg-pppext-ipv6cp-02.txt | |||
---|---|---|---|---|
Internet Engineering Task Force | Internet Engineering Task Force | |||
INTERNET-DRAFT Dimitry Haskin | INTERNET-DRAFT Dimitry Haskin | |||
Expires August 1996 Ed Allen | Expires October 1996 Ed Allen | |||
<draft-ietf-ipngwg-pppext-ipv6cp-01.txt> Bay Networks, Inc. | <draft-ietf-ipngwg-pppext-ipv6cp-02.txt> Bay Networks, Inc. | |||
February 1996 | ||||
IP Version 6 over PPP | IP Version 6 over PPP | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft. Internet-Drafts are working | This document is an Internet-Draft. Internet-Drafts are working | |||
documents of the Internet Engineering Task Force (IETF), its | documents of the Internet Engineering Task Force (IETF), its | |||
areas, and its working groups. Note that other groups may also | areas, and its working groups. Note that other groups may also | |||
distribute working documents as Internet-Drafts. | distribute working documents as Internet-Drafts. | |||
skipping to change at page 3, line 46 | skipping to change at page 3, line 46 | |||
does include the option. | does include the option. | |||
2. Sending IPv6 Datagrams | 2. Sending IPv6 Datagrams | |||
Before any IPv6 packets may be communicated, PPP must reach the | Before any IPv6 packets may be communicated, PPP must reach the | |||
Network-Layer Protocol phase, and the IPv6 Control Protocol must reach | Network-Layer Protocol phase, and the IPv6 Control Protocol must reach | |||
the Opened state. | the Opened state. | |||
Exactly one IPv6 packet is encapsulated in the Information field of | Exactly one IPv6 packet is encapsulated in the Information field of | |||
PPP Data Link Layer frames where the Protocol field indicates type | PPP Data Link Layer frames where the Protocol field indicates type | |||
hex 0xxx (Internet Protocol Version 6). | hex 0057 (Internet Protocol Version 6). | |||
The maximum length of an IPv6 packet transmitted over a PPP link is | The maximum length of an IPv6 packet transmitted over a PPP link is | |||
the same as the maximum length of the Information field of a PPP data | the same as the maximum length of the Information field of a PPP data | |||
link layer frame. PPP links supporting IPv6 must allow at least 576 | link layer frame. PPP links supporting IPv6 must allow at least 576 | |||
octets in the information field of a data link layer frame. | octets in the information field of a data link layer frame. | |||
3. A PPP Network Control Protocol for IPv6 | 3. A PPP Network Control Protocol for IPv6 | |||
The IPv6 Control Protocol (IPV6CP) is responsible for configuring, | The IPv6 Control Protocol (IPV6CP) is responsible for configuring, | |||
enabling, and disabling the IPv6 protocol modules on both ends of the | enabling, and disabling the IPv6 protocol modules on both ends of the | |||
skipping to change at page 4, line 27 | skipping to change at page 4, line 27 | |||
IPV6CP packets received before this phase is reached should be | IPV6CP packets received before this phase is reached should be | |||
silently discarded. | silently discarded. | |||
The IPv6 Control Protocol is exactly the same as the Link Control | The IPv6 Control Protocol is exactly the same as the Link Control | |||
Protocol [1] with the following exceptions: | Protocol [1] with the following exceptions: | |||
Data Link Layer Protocol Field | Data Link Layer Protocol Field | |||
Exactly one IPV6CP packet is encapsulated in the Information field | Exactly one IPV6CP packet is encapsulated in the Information field | |||
of PPP Data Link Layer frames where the Protocol field indicates | of PPP Data Link Layer frames where the Protocol field indicates | |||
type hex 8xxx (IPv6 Control Protocol). | type hex 8057 (IPv6 Control Protocol). | |||
Code field | Code field | |||
Only Codes 1 through 7 (Configure-Request, Configure-Ack, | Only Codes 1 through 7 (Configure-Request, Configure-Ack, | |||
Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack | Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack | |||
and Code-Reject) are used. Other Codes should be treated as | and Code-Reject) are used. Other Codes should be treated as | |||
unrecognized and should result in Code-Rejects. | unrecognized and should result in Code-Rejects. | |||
Timeouts | Timeouts | |||
skipping to change at page 5, line 25 | skipping to change at page 5, line 25 | |||
assigned as follows: | assigned as follows: | |||
1 Interface-Token | 1 Interface-Token | |||
2 IPv6-Compression-Protocol | 2 IPv6-Compression-Protocol | |||
4.1. Interface-Token | 4.1. Interface-Token | |||
Description | Description | |||
This Configuration Option provides a way to negotiate a unique | This Configuration Option provides a way to negotiate a unique | |||
48-bit interface token to be used for the address | 32-bit interface token to be used for the address | |||
autoconfiguration [3] at the local end of the link (see section 5). | autoconfiguration [3] at the local end of the link (see section 5). | |||
The interface token MUST be unique within the PPP link; i.e. upon | The interface token MUST be unique within the PPP link; i.e. upon | |||
completion of the negotiation different Interface-Token values are | completion of the negotiation different Interface-Token values are | |||
to be selected for the ends of the PPP link. | to be selected for the ends of the PPP link. | |||
Before this Configuration Option is requested, an implementation | Before this Configuration Option is requested, an implementation | |||
must choose its tentative Interface-Token. It is recommended that | must choose its tentative Interface-Token. It is recommended that | |||
a non-zero value be chosen in the most random manner possible in | a non-zero value be chosen in the most random manner possible in | |||
order to guarantee with very high probability that an | order to guarantee with very high probability that an | |||
implementation will arrive at a unique token value. A good way to | implementation will arrive at a unique token value. A good way to | |||
skipping to change at page 5, line 47 | skipping to change at page 5, line 47 | |||
Suggested sources of uniqueness include machine serial numbers, | Suggested sources of uniqueness include machine serial numbers, | |||
other network hardware addresses, system clocks, etc. Note that it | other network hardware addresses, system clocks, etc. Note that it | |||
may not be sufficient to use a link-layer address alone as the | may not be sufficient to use a link-layer address alone as the | |||
seed, since it will not always be unique. Thus it is suggested | seed, since it will not always be unique. Thus it is suggested | |||
that the seed should be calculated from a variety of sources that | that the seed should be calculated from a variety of sources that | |||
are likely to be different even on identical systems and as many | are likely to be different even on identical systems and as many | |||
sources as possible be used simultaneously. Good sources of | sources as possible be used simultaneously. Good sources of | |||
uniqueness or randomness are required for the Interface-Token | uniqueness or randomness are required for the Interface-Token | |||
negotiation to succeed. If a good source of randomness cannot be | negotiation to succeed. If a good source of randomness cannot be | |||
found, it is recommended that a zero value be used for the | found, it is recommended that a zero value be used for the | |||
Interface-Token transmitted in the Configure-Request. | Interface-Token transmitted in the Configure-Request. In this case | |||
the PPP peer may provide a valid non-zero Interface-Token in its | ||||
Note that if at least one of the PPP peers is able to generate | response as described below. Note that if at least one of the PPP | |||
a unique random number, the token negotiation will succeed. | peers is able to generate a unique random number, the token | |||
negotiation will succeed. | ||||
When a Configure-Request is received with the Interface-Token | When a Configure-Request is received with the Interface-Token | |||
Configuration Option and the receiving peer implements this option, | Configuration Option and the receiving peer implements this option, | |||
the received Interface-Token is compared with the Interface-Token | the received Interface-Token is compared with the Interface-Token | |||
of the last Configure-Request sent to the peer. Depending on the | of the last Configure-Request sent to the peer. Depending on the | |||
result of the comparison an implementation MUST respond in one of | result of the comparison an implementation MUST respond in one of | |||
the following ways: | the following ways: | |||
If the two Interface-Tokens are different, the Interface-Token | If the two Interface-Tokens are different but the received | |||
MUST be acknowledged, i.e. Configure-Ack is sent with the | Interface-Token is zero, a Configure-Ack is sent with a non-zero | |||
requested Interface-Token, meaning that the responding peer | Interface-Token value suggested for use by the remote peer. | |||
agrees with the Interface-Token requested. | Such a suggested Interface-Token MUST be different from the | |||
Interface-Token of the last Configure-Request sent to the peer. | ||||
If the two Interface-Tokens are different and the received | ||||
Interface-Token is not zero, the Interface-Token MUST be | ||||
acknowledged, i.e. a Configure-Ack is sent with the requested | ||||
Interface-Token, meaning that the responding peer agrees with | ||||
the Interface-Token requested. | ||||
If the two Interface-Tokens are equal and are not zero, a | If the two Interface-Tokens are equal and are not zero, a | |||
Configure-Nak MUST be sent specifying a different non-zero | Configure-Nak MUST be sent specifying a different non-zero | |||
Interface-Token value suggested for use by the remote peer. | Interface-Token value suggested for use by the remote peer. | |||
If the two Interface-Tokens are equal to zero, the | If the two Interface-Tokens are equal to zero, the | |||
Interface-Tokens negotiation MUST be terminated by transmitting | Interface-Tokens negotiation MUST be terminated by transmitting | |||
the Configure-Reject with the Interface-Token value set to zero. | the Configure-Reject with the Interface-Token value set to zero. | |||
In this case, a unique Interface-Token can not be negotiated. | In this case a unique Interface-Token can not be negotiated. | |||
If a Configure-Request is received with the Interface-Token | If a Configure-Request is received with the Interface-Token | |||
Configuration Option and the receiving peer does not implement | Configuration Option and the receiving peer does not implement | |||
this option, Configure-Rej is sent. | this option, Configure-Rej is sent. | |||
A new Configure-Request SHOULD NOT be sent to the peer until normal | A new Configure-Request SHOULD NOT be sent to the peer until normal | |||
processing would cause it to be sent (that is, until a Configure- | processing would cause it to be sent (that is, until a Configure- | |||
Nak is received or the Restart timer runs out). | Nak is received or the Restart timer runs out). | |||
A new Configure-Request MUST NOT contain the Interface-Token option | A new Configure-Request MUST NOT contain the Interface-Token option | |||
if a valid Interface-Token Configure-Reject is received. | if a valid Interface-Token Configure-Reject is received. | |||
Reception of a Configure-Nak with a suggested Interface-Token | Reception of a Configure-Nak with a suggested Interface-Token | |||
different from that of the last Configure-Nak sent to the peer | ||||
indicates a unique Interface-Token. In this case a new Configure- | ||||
Request MUST be sent with the token value suggested in the last | ||||
Configure-Nak from the peer. But if the received Interface-Token | Configure-Nak from the peer. But if the received Interface-Token | |||
is equal to the one sent in the last Configure-Nak, a new | is equal to the one sent in the last Configure-Nak, a new | |||
Interface-Token MUST be chosen. In this case, a new Configure- | Interface-Token MUST be chosen. In this case, a new Configure- | |||
Request SHOULD be sent with the new tentative Interface-Token. | Request SHOULD be sent with the new tentative Interface-Token. | |||
This sequence (transmit Configure-Request, receive Configure- | This sequence (transmit Configure-Request, receive Configure- | |||
Request, transmit Configure-Nak, receive Configure-Nak) might | Request, transmit Configure-Nak, receive Configure-Nak) might | |||
occur a few times, but it is extremely unlikely to occur | occur a few times, but it is extremely unlikely to occur | |||
repeatedly. More likely, the Interface-Tokens chosen at either end | repeatedly. More likely, the Interface-Tokens chosen at either end | |||
will quickly diverge, terminating the sequence. | will quickly diverge, terminating the sequence. | |||
If negotiation about the Interface-Token is required, and the peer | If negotiation about the Interface-Token is required, and the peer | |||
did not provide the option in its Configure-Request, the option | did not provide the option in its Configure-Request, the option | |||
SHOULD be appended to a Configure-Nak. The tentative value of the | SHOULD be appended to a Configure-Nak. The tentative value of the | |||
Interface-Token given must be acceptable as the remote | Interface-Token given must be acceptable as the remote | |||
skipping to change at page 7, line 34 | skipping to change at page 7, line 37 | |||
A summary of the Interface-Token Configuration Option format is | A summary of the Interface-Token Configuration Option format is | |||
shown below. The fields are transmitted from left to right. | shown below. The fields are transmitted from left to right. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | Interface-Token | | Type | Length | Interface-Token | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Interface-Token (cont) | | Interface-Token (cont) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type | Type | |||
1 | 1 | |||
Length | Length | |||
8 | 6 | |||
Interface-Token | Interface-Token | |||
The 48-bit Interface-Token which is very likely to be unique | The 32-bit Interface-Token which is very likely to be unique | |||
to one end of the link or zero if a good sources of uniqueness | to one end of the link or zero if a good sources of uniqueness | |||
can not be found. | can not be found. | |||
Default | Default | |||
No Interface-Token is selected. | No Interface-Token is selected. | |||
4.2. IPv6-Compression-Protocol | 4.2. IPv6-Compression-Protocol | |||
Description | Description | |||
This Configuration Option provides a way to negotiate the use of | This Configuration Option provides a way to negotiate the use of | |||
a specific compression protocol. The IPv6-Compression-Protocol | a specific IPv6 packet compression protocol. The IPv6-Compression- | |||
Configuration Option is used to indicate the ability to receive | Protocol Configuration Option is used to indicate the ability to | |||
compressed packets. Each end of the link must separately request | receive compressed packets. Each end of the link must separately | |||
this option if bi-directional compression is desired. By default, | request this option if bi-directional compression is desired. By | |||
compression is not enabled. | default, compression is not enabled. | |||
IPv6 compression negotiated with this option is specific to IPv6 | ||||
datagrams and is not to be confused with compression resulting from | ||||
negotiations via Compression Control Protocol (CCP), which | ||||
potentially effect all datagrams. | ||||
A summary of the IPv6-Compression-Protocol Configuration Option format | A summary of the IPv6-Compression-Protocol Configuration Option format | |||
is shown below. The fields are transmitted from left to right. | is shown below. The fields are transmitted from left to right. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | IPv6-Compression-Protocol | | | Type | Length | IPv6-Compression-Protocol | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Data ... | | Data ... | |||
skipping to change at page 9, line 18 | skipping to change at page 9, line 27 | |||
004f IPv6 Header Compression | 004f IPv6 Header Compression | |||
Data | Data | |||
The Data field is zero or more octets and contains additional data | The Data field is zero or more octets and contains additional data | |||
as determined by the particular compression protocol. | as determined by the particular compression protocol. | |||
Default | Default | |||
No compression protocol enabled. | No IPv6 compression protocol enabled. | |||
5. Stateless Autoconfiguration and Link-Local Addresses | 5. Stateless Autoconfiguration and Link-Local Addresses | |||
The interface token, which is used for forming IPv6 addresses of | The interface token, which is used for forming IPv6 addresses of | |||
a PPP interface, SHOULD be negotiated in the IPV6CP phase of the PPP | a PPP interface, SHOULD be negotiated in the IPV6CP phase of the PPP | |||
connection setup (see section 4.1). If no valid interface token has | connection setup (see section 4.1). If no valid interface token has | |||
been successfully negotiated, procedures for recovering from such | been successfully negotiated, procedures for recovering from such | |||
a case are unspecified. One approach is to manually configure | a case are unspecified. One approach is to manually configure | |||
the interface token of the interface. | the interface token of the interface. | |||
As long as the interface token is negotiated in the IPV6CP phase of | As long as the interface token is negotiated in the IPV6CP phase of | |||
the PPP connection setup, it is redundant to perform duplicate | the PPP connection setup, it is redundant to perform duplicate | |||
address detection as a part of the IPv6 Stateless Autoconfiguration | address detection as a part of the IPv6 Stateless Autoconfiguration | |||
protocol [3]. Therefore it is recommended that for PPP links with | protocol [3]. Therefore it is recommended that for PPP links with | |||
the IPV6CP Interface-Token option enabled the default value of the | the IPV6CP Interface-Token option enabled the default value of the | |||
DupAddrDetectTransmits autoconfiguration variable [3] be zero. | DupAddrDetectTransmits autoconfiguration variable [3] be zero. | |||
Link-local addresses of PPP interfaces have the following format: | Link-local addresses of PPP interfaces have the following format: | |||
| 10 bits | 70 bits | 48 bits | | | 10 bits | 86 bits | 32 bits | | |||
+----------+--------------+----------------+----------------------+ | +----------+--------------+---------------------+-----------------+ | |||
|1111111010| 0 | Interface Token | | |1111111010| 0 | Interface Token | | |||
+----------+--------------+----------------+----------------------+ | +----------+--------------+---------------------+-----------------+ | |||
The most significant 10 bits of the address is the Link-Local prefix | The most significant 10 bits of the address is the Link-Local prefix | |||
FE80::. 70 zero bits pad out the address between the Link-Local | FE80::. 86 zero bits pad out the address between the Link-Local | |||
prefix and the Interface Token fields. | prefix and the Interface Token fields. | |||
A. IPV6CP Recommended Options | A. IPV6CP Recommended Options | |||
The following Configurations Options are recommended: | The following Configurations Options are recommended: | |||
Interface-Token | Interface-Token | |||
IPv6-Compression-Protocol | IPv6-Compression-Protocol | |||
End of changes. 17 change blocks. | ||||
34 lines changed or deleted | 40 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |