One document matched: draft-ietf-pppext-bacp-02.txt
Differences from draft-ietf-pppext-bacp-01.txt
PPP Working Group Craig Richards
Internet Draft Shiva Corporation
expires September 1996 Kevin Smith
Ascend Communications, Inc.
March 1996
The PPP Bandwidth Allocation Protocol (BAP)
The PPP Bandwidth Allocation Control Protocol (BACP)
draft-ietf-pppext-bacp-02.txt
Status of this Memo
This document is a submission to the Point-to-Point Protocol Working
Group of the Internet Engineering Task Force (IETF). Comments should
be submitted to the ietf-ppp@merit.edu mailing list.
Distribution of this memo is unlimited.
Internet Drafts are working documents of the Internet Engineering
Task Force (IETF), its Areas, and its Working Groups. Note that
other groups may also distribute working documents as Internet
Drafts.
Internet Drafts are draft documents valid for a maximum of six
months. Internet Drafts may be updated, replaced, or obsoleted by
other documents at any time. It is not appropriate to use Internet
Drafts as reference material or to cite them other than as a
``working draft'' or ``work in progress.''
Please check the 1id-abstracts.txt listing contained in the
internet-drafts Shadow Directories on nic.ddn.mil, ds.internic.net,
venera.isi.edu, nic.nordu.net, or munnari.oz.au to learn the current
status of any Internet Draft.
Abstract
This document proposes a method to manage the dynamic bandwidth
allocation of implementations supporting the PPP multilink protocol
[2]. This is done by defining the Bandwidth Allocation Protocol
(BAP), as well as its associated control protocol, the Bandwidth
Allocation Control Protocol (BACP). BAP can be used to manage the
number of links in a multilink bundle. BAP defines datagrams to co-
ordinate adding and removing individual links in a multilink bundle,
as well as specifying which peer is responsible for which decisions
regarding managing bandwidth during a multilink connection.
Richards & Smith expires September 1996 [Page i]
RFC DRAFT PPP BACP March 1996
1. Introduction
As PPP multilink implementations become increasingly common, there is
a greater need for some conformity in how to manage bandwidth over
such links. Interoperable implementations of PPP multilink have had
problems such as thrashing, when links are repeatedly brought up and
torn down in a short amount of time. BACP and BAP provide a means of
solving problems associated with interoperable thrashing
implementations, they also provide a flexible yet robust way of
managing bandwidth between 2 peers. BAP does this by defining Call-
Control packets and a protocol that allows peers to co-ordinate the
actual bandwidth allocation and de-allocation. Phone numbers may be
passed in the Call-Control packets to minimize the end user's
configuration.
1.1. Specification of Requirements
In this document, several words are used to signify the requirements
of the specification. These words are often capitalized.
MUST This word, or the adjective "required", means that the
definition is an absolute requirement of the specification.
MUST NOT This phrase means that the definition is an absolute
prohibition of the specification.
SHOULD This word, or the adjective "recommended", means that there
may exist valid reasons in particular circumstances to
ignore this item, but the full implications must be
understood and carefully weighed before choosing a
different course.
MAY This word, or the adjective "optional", means that this
item is one of an allowed set of alternatives. An
implementation which does not include this option MUST be
prepared to interoperate with another implementation which
does include the option.
1.2. Terminology
This document frequently uses the following terms:
peer The other end of the point-to-point link
silently discard
This means the implementation discards the packet without
further processing. The implementation SHOULD provide the
capability of logging the error, including the contents of
Richards & Smith expires September 1996 [Page 1]
RFC DRAFT PPP BACP March 1996
the silently discarded packet, and SHOULD record the event
in a statistics counter.
BOD (bandwidth on demand)
BOD refers to the ability of a system to allocate and
remove links in a multilink system to change the bandwidth
of a multilink bundle. This may be done in response to
changing line conditions and it also may be done in
response to changing resource conditions. In either case,
changing bandwidth dynamically during a multilink
connection is referred to as BOD.
2. New LCP Configuration Option
Implementations MUST implement LCP as defined in [1]. LCP MUST be in
the Network-Layer Protocol phase before BACP can be negotiated.
2.1. Link Discriminator
Description
This option is used to declare a unique discriminator for the link
that the option is sent over. This option MUST be negotiated by
LCP on every link. BAP uses the link discriminator to
differentiate the various links in a multilink bundle. Each link
in a multilink bundle MUST have a unique discriminator. The
discriminator is independent for each peer, so each link may have
2 different LCP Link Discriminator values, one for each peer.
When the Link Discriminator is sent in a BAP packet, it is the
peer's Link Discriminator which is sent.
A summary of the Link Discriminator LCP Option format is shown below.
The fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Link Discriminator |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
23 for Link Discriminator option.
Richards & Smith expires September 1996 [Page 2]
RFC DRAFT PPP BACP March 1996
Length
4
Link Discriminator
The Link Discriminator field is 2 octets in Length, and it
contains a unique identifier used to indicate a particular link in
a multilink bundle. The Link Discriminator for a link MUST be
unique among the Link Discriminators assigned by this endpoint for
this bundle. The Link Discriminator SHOULD be assigned in a
sequential, monotonically increasing manner.
3. BACP Operation
BACP uses the same packet exchange mechanism as the Link Control
Protocol defined in [1]. BACP packets MUST NOT be exchanged until
PPP has reached the Network-Layer Protocol phase. BACP packets
received before this phase is reached should be silently discarded.
BACP is negotiated once per multilink bundle. If BACP is negotiated
on any of the links in a multilink bundle, it is opened for all of
the links in the bundle.
The Bandwidth Allocation Control Protocol is exactly the same as the
Link Control Protocol [1] with the following exceptions:
Data Link Layer Protocol Field
Exactly one BACP packet is encapsulated in the Information
field of PPP Data Link Layer frames where the Protocol field
indicates Type hex 8071 (Bandwidth Allocation Control
Protocol).
Code field
Only Codes 1 through 7 (Configure-Request, Configure-Ack,
Configure-Nak, Configure-Reject, Terminate-Request, Terminate-
Ack and Code-Reject) are used. Other Codes should be treated
as unrecognized and should result in Code-Rejects.
Configuration Option Types
BACP does not have any Configuration Options. Any options
SHOULD not be sent, and any options received SHOULD be rejected
using a Config-Reject packet.
Richards & Smith expires September 1996 [Page 3]
RFC DRAFT PPP BACP March 1996
4. BAP Operation
4.1. Link Management
BAP defines packets, parameters and negotiation procedures to allow
two endpoints to negotiate gracefully adding and dropping links from
a multilink bundle. An implementation can:
o Request permission to add a Link to a bundle (Call-Request)
o Request that the peer add a link to a bundle via a callback
(Callback-Request)
o Negotiate with the peer to drop a link from a bundle (this
implies that the peer can refuse) (Link-Drop-Query-Request)
After BACP reaches the opened state, either peer MAY request that
another link be added to the bundle by sending a BAP Call- or
Callback-Request packet. A Call-Request packet is sent if the
implementation wishes to originate the call for the new link, and a
Callback-Request packet is sent if the implementation wishes its peer
to originate the call for the new link. The implementation receiving
a Call- or Callback-Request MUST respond with a Call- or Callback-
Response with a valid Response Code.
After BACP reaches the opened state, either peer MAY request that a
link be dropped from the bundle. A BAP Drop-Link-Query-Request
packet is sent to the peer to negotiate dropping a link. The peer
MUST respond with a Drop-Link-Query-Response. If the peer is
agreeable to dropping the link the implementation should then issue
an LCP Terminate-Request to initiate dropping the link.
If an implementation wishes to force dropping a link without
negotiation, it should simply send an LCP Terminate-Request packet on
the link (without sending any BAP Drop-Link-Query-Request).
After an LCP Terminate-Request is sent an implementation SHOULD stop
transmitting data packets on that link, but still continue to receive
and process data packets normally until receipt of a Terminate-Ack
from the peer. The peer SHOULD stop transmitting packets before
issuing the Terminate-Ack. This procedure will insure that no data
is lost in either direction.
A BAP Link-Drop-Query-Request is used to inquire if the peer agrees
to drop a link from the current multilink bundle. Origination of a
Link-Drop-Query-Request is an optional part of BAP. A system
implementing BAP MUST support the receipt of Link-Drop-Query-Request
from its peer. When an implementation wants to negotiate dropping a
Richards & Smith expires September 1996 [Page 4]
RFC DRAFT PPP BACP March 1996
link, it MUST transmit a Link-Drop-Query-Request. When an
implementation receives a Link-Drop-Query-Request, it MUST base its
response on its transmit heuristics or on its configuration (e.g., if
the request would cause the number of active links to fall below the
allowable minimum number of links configured for the active multilink
bundle). If the implementation receiving a Link-Drop-Query-Request
is not monitoring its transmit data and is not configured otherwise,
it MUST accept the request to drop a link.
4.2. Bandwidth Management
BAP allows two peer implementations to manage the bandwidth available
to the protocols using the multilink bundle by negotiating when to
add and drop links (See Link Management). The Bandwidth Allocation
Protocol does not include an algorithm for determining when to add
and remove links in a multilink bundle. These algorithms are left to
the implementors. It is not necessary to include such an algorithm in
the protocol, and including it may limit the abilities of
implementations to work optimally. Leaving out the bandwidth on
demand algorithm also improves chances for interoperability and makes
the protocol more flexible.
This section defines two important Types of BOD: Resource BOD and
Throughput BOD. This does not preclude other Types of BOD from being
implemented (e.g., Time of Day). The rest of this specification
refers to actions to take when implementing these types of BOD.
Throughput BOD refers to BOD decisions made based on the amount of
data being sent, received or queued to be sent over a multilink
bundle. An example of this is when a link is added to a bundle due to
a large file being transferred across the bundle.
Resource BOD refers to BOD decisions based on the resources (e.g.,
physical port, B-channel, etc.) available to an implementation. For
example, an implementation might remove a link from a multilink
bundle to answer an incoming voice call, or might add a link when a
line becomes free due to the termination of a separate PPP call on
another port. A system implementing BACP/BAP MAY support neither,
either, both or some other Type of Bandwidth On Demand. Regardless
of the Type of BOD implemented, if it uses BAP it must use the
procedures in this specification for adding and dropping links.
Resource BOD support is an optional part of BAP. An implementation
does not have to locally make resource based BOD decisions as part of
BAP. However, any system implementing BAP MUST support resource BOD
management by its peer. An implementation MUST use an LCP
Terminate-Request to remove a link due to Resource BOD.
Richards & Smith expires September 1996 [Page 5]
RFC DRAFT PPP BACP March 1996
Throughput BOD support is an optional part of BAP. An implementation
does not have to locally make throughput based BOD decisions as part
of BAP. However, any system implementing BAP must handle throughput
BOD management by its peer (i.e., receipt of Link-Drop-Query-
Request). When an implementation decides that it's time to remove a
link due to a throughput BOD decision, an implementation MUST
transmit a Link-Drop-Query-Request to inquire if the peer agrees to
drop a link from the current multilink bundle. When an
implementation receives a Link-Drop-Query-Request, it MUST base its
response on its transmit heuristics (if it implements Throughput BOD)
or on its configuration (e.g., if the request would cause the number
of active links to fall below the allowable minimum number of links
configured for the active multilink bundle). If the implementation
receiving a Link-Drop-Query-Request is not monitoring its transmit
data and is not configured otherwise, it MUST accept the request to
drop a link. It MUST NOT base its response on its receive data
heuristics. By making the decision to respond to a Link-Drop-Query-
Request based on transmit heuristics only, BAP maximizes
interoperability of various types of throughput BOD implementations.
A BAP implementation may monitor its transmit traffic, both transmit
and receive traffic, or choose not to monitor traffic in either
direction. Server systems SHOULD implement bi-directional monitoring
and single-user dialin clients MAY implement any type of monitoring.
This will allow client BOD implementations that require minimal end-
user configuration.
4.3. BAP Packets
All of the BAP Request and Indication packets require a Response
packet in response before taking any action.
An implementation MUST set a timer when sending a Request or
Indication packet. The value of this timer SHOULD depend on the type
and speed of the link or links in use. Upon expiration of this
timer, the implementation MUST retransmit the same request or
indication, with the identical identification number unless the
implementation has exceeded the maximum number of retransmissions it
supports for this packet. If the number of retransmissions exceeds
the number supported by the implementation for this packet, the
implementation MAY take appropriate recovery action. For example, if
no response to a Link-Drop-Query-Request is received after 2
retransmissions, an implementation MAY initiate dropping the link by
sending an LCP Terminate-Request for that link.
This procedure will insure that the peer receives the proper request
or indication even if a packet is lost during transmission. If a
Richards & Smith expires September 1996 [Page 6]
RFC DRAFT PPP BACP March 1996
Response packet is lost, this retransmission scheme will insure that
the original Request or Indication will be retransmitted with the
same identification number, so the peer will realize that this is not
a new request or indication packet.
Since BAP packets help determine the amount of bandwidth available to
an implementation, PPP SHOULD give them priority over other data
packets when transmitting. This will help insure the prompt addition
and removal of links in a multilink bundle. This is especially
important when adding links to a bundle due to bandwidth constraints.
4.4. Race Conditions
A race condition can occur if both implementations send a Call-
Request, Callback-Request or Link-Drop-Query-Request at the same
time. These race conditions should be solved as follows:
If each implementation sends a Call-Request (or Callback-Request)
at the same time, the implementation with the lowest username
value SHOULD be favored. A username value is compared by
converting the ASCII bytes of the username used by the peer during
authentication into hexadecimal octets to create a number. If
both implementations are using the same username, then the lowest
Multilink Endpoint Discriminator SHOULD be favored. Once again,
each Multilink Endpoint Discrininators is first converted into
hexadecimal octets starting with the Class octet, before being
compared. This means that the favored peer's request SHOULD be
acked by its peer, and the unfavored peer's request SHOULD be
naked by the favored peer.
If each implementation sends a Link-Drop-Query-Request at the same
time, the same scheme SHOULD be used as for Call-Requests.
4.5. BAP Datagram Format
Description
Before any BAP packets may be communicated, PPP MUST reach the
Network-Layer Protocol phase, and BACP MUST reach the opened
state.
Exactly one BAP packet is encapsulated in the Information field of
PPP Data Link Layer frames where the Protocol field indicates type
hex 0071 (Bandwidth Allocation Protocol).
The maximum length of a BAP packet transmitted over a PPP link is
the same as the maximum length of the Information field of a PPP
data link layer frame.
Richards & Smith expires September 1996 [Page 7]
RFC DRAFT PPP BACP March 1996
Bandwidth Allocation Protocol datagrams can be catagorized as
either Request, Indication or Response packets. Every Request and
Indication datagram has a corresponding Response packet. Request
and Indication datagrams have a slightly different format from
Response datagrams, as the Response datagrams include a Response
Code octet.
All of the BAP datagrams MUST be supported by an implementation.
A summary of the Bandwidth Allocation Protocol datagram Request and
Indication packet format is shown below. The fields are transmitted
from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-+-+-+-+
A summary of the Bandwidth Allocation Protocol datagram Response
packet format is shown below. The fields are transmitted from left
to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Response Code | Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
The Type field is one octet and identifies the type of BAP
datagram packet. Datagram types are defined as follows. This
field is coded in binary coded hexadecimal.
Richards & Smith expires September 1996 [Page 8]
RFC DRAFT PPP BACP March 1996
01 Call-Request
02 Call-Response
03 Callback-Request
04 Callback-Response
05 Link-Drop-Query-Request
06 Link-Drop-Query-Response
07 Call-Status-Indication
08 Call-Status-Response
The various types of BAP datagrams are explained in the following
sections.
Identifier
The Identifier field is one octet and is binary coded. It aids in
matching Requests and Indications with Responses, as well as which
links are added or removed. Call-Status-Indication packets MUST
use the same Identifier as was used by the original Call-Request
or Callback-Request that was used to initiate the call that
failed. All other Request or Indication packets MUST use a unique
Identifier for each new Request or Indication. All Response
packets MUST use the same identifier as the Identifier in the
Request or Indication packet being responded to. When re-
transmitting a request or indication, the Identifier MUST be the
same as the Identifier used on the previous transmission of the
request or indication.
Length
The Length field is two octets and indicates the length of the
packet including the Type, Identifier, Length and Options fields.
It is binary encoded. Octets outside the range of the Length field
should be treated as Data Link Layer padding and should be ignored
on reception.
Response Code
The Response Code is only present in Response datagrams. It is
binary coded and can have the following values:
00000000 Request-Ack
00000001 Request-Nak
00000010 Request-Rej
00000011 Request-Full-Nak
The Request-Ack Response Code is sent to indicate that the Request
or Indication command is valid and was successfully received by an
Richards & Smith expires September 1996 [Page 9]
RFC DRAFT PPP BACP March 1996
implementation. The Request-Nak Response Code is sent to indicate
that the Request command was received, but an implementation does
not want the requested action performed at this time. If a
Response containing a Request-Nak Response Code is received, the
original Request MAY be retried after an implementation determines
that sufficient time has elapsed. The Request-Rej Response Code
is sent to indicate that the Request command received by an
implementation is not implemented (i.e., if receiving a callback
is not implemented by the peer.) The Request-Full-Nak Response
Code is sent to indicate that the Request command was received,
but an implementation does not want the requested action
performed. The Request-Full-Nak is used to indicate that an
implementation has reached the maximum (for a Call- or Callback-
Request) or the minimum (for a Link-Drop-Query-Request) bandwidth
configured or available for this multilink bundle. If a Response
containing a Request-Full-Nak Response Code is received, the
original Request SHOULD NOT be retried until the total bandwidth
of the multilink bundle has changed.
Data
The Data field is variable in length, and will usually contain the
list of zero or more BAP Options that the sender desires to
transmit. The format of BAP Options is described in a later
chapter.
4.5.1. Call-Request
Before originating a call to add another link to a multilink bundle,
an implementation MUST transmit a Call-Request packet. This will
inform the peer of the request to add another link to the bundle and
give the peer a chance to inform the implementation of the phone
number of a free port that can be called.
The options field MUST include the Link-Type option. The options
field MAY include the No-Phone-Number and/or the Reason options.
Upon reception of a Call-Request, a Call-Response datagram MUST be
transmitted.
4.5.2. Call-Response
An implementation MUST transmit a Call-Response datagram in response
to a received Call-Request datagram. If the Call-Request is
acceptable, the Call-Response MUST have a Response Code of Request-
Ack; otherwise the Response Code MUST be Request-Nak or Request-
Full-Nak. The Phone-Number option MUST be included in a Call-Response
packet with a Response Code of Request-Ack unless the Call-Request
Richards & Smith expires September 1996 [Page 10]
RFC DRAFT PPP BACP March 1996
included the No-Phone-Number option. The options field MAY include
the Reason and/or Link-Type options.
4.5.3. Callback-Request
An implementation that wants its peer to originate another link to
add to the multilink bundle MUST transmit a Callback-Request packet
to its peer. This will inform the peer of the request to add another
link to the bundle and will also inform the peer of the number to be
called.
The options field MUST include the Phone-Number option. The Link-
Type and Reason options MAY also be included.
Upon reception of a Callback-Request, a Callback-Response datagram
MUST be transmitted.
4.5.4. Callback-Response
An implementation MUST transmit a Callback-Response datagram in
response to a received Callback-Request datagram. If the Callback-
Request is acceptable, the Callback-Response MUST have a Response
Code of Request-Ack. A Callback-Response packet MAY include the
Link-Type option.
4.5.5. Link-Drop-Query-Request
An implementation that determines that a link is no longer needed and
wishes to negotiate dropping it (e.g., based on a throughput BOD
decision), MUST transmit a Link-Drop-Query-Request packet. The
options field MUST include the Link-Discriminator option, and MAY
include the Reason option.
Upon reception of a Link-Drop-Query-Request, an implementation MUST
transmit a Link-Drop-Query-Response datagram. The Response-Code will
be Request-Ack if it agrees to drop the link; if it does not agree to
drop the link the Response-Code will be Request-Nak or Request-Full-
Nak. After the receipt of a Link-Drop-Query-Response with a Response
Code of Request-Ack, the transmitter of the Link-Drop-Query-Request
MUST initiate tear down of the indicated link by sending an LCP
Terminate-Request packet on the designated link.
4.5.6. Link-Drop-Query-Response
An implementation transmits a Link-Drop-Query-Response datagram in
response to a received Link-Drop-Query-Request datagram. If the
implementation agrees (e.g., based on its throughput BOD algorithm)
to reduce the bandwidth of the multilink bundle, then the Response
Richards & Smith expires September 1996 [Page 11]
RFC DRAFT PPP BACP March 1996
Code MUST be set to Request-Ack. Otherwise, the Response Code MUST be
set to either Request-Nak or Request-Full-Nak.
The Reason option MAY be included in the Link-Drop-Query-Response
packet.
4.5.7. Call-Status-Indication
After an implementation attempts to add a link to a bundle as the
result of a Call-Request or a Callback-Request, it MUST send a Call-
Status-Indication packet to its peer. The Call-Status option MUST be
included to inform the peer of the status of the call and the action
the implementation will take in case of call failure. The reason
option MAY also be included in the Call-Status-Indication packet.
Upon reception of a Call-Status-Indication packet, an implementation
MAY log the failure and reason code, and a Call-Status-Response
datagram MUST be transmitted.
4.5.8. Call-Status-Response
An implementation transmits a Call-Status-Response datagram in
response to a received Call-Status-Indication datagram. The Response
Code field MUST be set to Request-Ack in this packet. The Reason
option MAY be included in this packet.
5. BAP Datagram Options
BAP Datagram Options are used in various BAP packets. Their use in
various packets is as defined below. The format of these options
loosely follows the formatting conventions of LCP Configuration
Options. When there are multiple BAP Options in one BAP packet, the
options MAY be transmitted in any order.
A summary of the BAP Option format is shown below. The fields are
transmitted from left to right.
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Richards & Smith expires September 1996 [Page 12]
RFC DRAFT PPP BACP March 1996
Type
The type field is one octet, and indicates the type of the BAP
Datagram Option. This field is binary coded Hexadecimal. The
following options are currently defined:
01 Link-Type
02 Phone-Number
03 No-Phone-Number-Needed
04 Reason
05 Link-Discriminator
06 Call-Status
Length
The Length field is one octet, and indicates the length of this
BAP Option including the Type, Length, and Data fields.
Data
The Data field is zero or more octets, and contains information
specific to the BAP Option. The format and length of the Data
field is determined by the Type and Length fields.
5.1. Link-Type
Description
This option indicates the general type of link indicated for the
operation being performed. This option does not indicate a
specific link type, rather it gives some general characteristics
of the desired link type. This option MAY be used along with
other knowledge (i.e., the type of the other link(s) in the bundle
or user configuration) to determine the type of link desired to be
used in the operation. It MUST be included in a Call- or
Callback-Request, and MAY be included in a Call- or Callback-
Response.
A summary of the Link-Type BAP Option format is shown below. The
fields are transmitted from left to right.
Richards & Smith expires September 1996 [Page 13]
RFC DRAFT PPP BACP March 1996
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Link Speed (kbps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Type |
+-+-+-+-+-+-+-+-+
Type
01 for Link-Type.
Length
The Length field is one octet, and indicates the length of this
BAP Option including the Type, Length and Link Type fields.
Link Speed
The Link Speed field is 2 octets, and indicates the requested
speed of the desired link in kilobits per second. This field is
coded as 2 binary coded hexadecimal octets, with the most
significant octet sent first.
Link Type
The Link Type field is a bit mask. It is 1 octet in length. Bit
0 of the Link Type field corresponds to bit 32 of the Link-Type
BAP Option as described above. If a bit is set, it indicates
support of the corresponding link type (more than one bit MAY be
set):
Bit Link type
--- -------------
0 ISDN
1 X.25
2 analog
3-7 reserved
If the Length field contains more bits than are defined by this
specification, then any bits that are not defined should be
ignored. If the Length field is shorter than the number of bits
defined, then the implementation should set all bits not received
to 0.
Richards & Smith expires September 1996 [Page 14]
RFC DRAFT PPP BACP March 1996
5.2. Phone-Number
Description
This option is used to transmit an implementation's phone number
to its peer. For example, this phone number could be either the
phone number of a hunt group for this device, or the specific
phone number of a free port on this device. An implementation MAY
include more than one Phone-Number option in a response. This
indicates that there is more than one phone number that can be
used for the requested operation. The Phone-Number option MUST
appear in a Callback-Request if the Response Code is set to
Request-Ack. It also MUST appear in a Call-Response with a
Response Code set to Request-Ack if the Call-Request did not
contain the No-Phone-Number option. It MAY be included in the
Call-Status-Indication packet.
A summary of the Phone-Number BAP Option format is shown below. The
fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |Sub-Option Type| Sub-Option Len|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Option...
+-+-+-+-+-+-+-+-+
Type
02 for Phone-Number.
Length
The Length field is one octet, and indicates the length of this
BAP Option including the Type, Length, and Sub-Option fields.
Sub-Option Type
The following Sub-Options Types are defined for the Phone-Number
option.
01 Unique Digits
02 Subscriber Number
03 Phone Number Sub Address
Richards & Smith expires September 1996 [Page 15]
RFC DRAFT PPP BACP March 1996
5.2.1. Phone-Number Sub-Options
Unique Digits
This byte is a count of the number of unique digits in the phone
number. The Unique Digits byte indicates the number of rightmost
digits of the complete phone number that are different from port
to port on the given device. (For example, if all phone numbers
on a given device are 617/555-89XX, the Unique Digits byte is 2,
if all phone numbers are 617/55X-XXXX, then the Unique Digits byte
will be 5). This field is required.
The purpose of the unique digits sub-option is to aid the
originating implementation in phone number parsing. With this
information, the implementation that originates a call does not
have to know which combination of access codes, country codes,
dialing codes, area codes and extension numbers are necessary. It
just takes the digits contained in the original phone number
dialed, and replaces the rightmost unique digits with the
rightmost unique digits of the new phone number. For example, if
the original number dialed is 9,16175512345, and the new phone
number has an area code of 617, a phone number of 5598765, and a
unique digits value of 5, then the number to be dialed will be
created by replacing the rightmost 5 digits of the original number
(12345) with the rightmost 5 digits of the new number (98765),
which results in a new phone number to be dialed of 9,16175598765.
Subscriber Number
This field is the phone number of the port that should be called
by the peer. It MAY include the National Destination and Country
Codes. This field is an ASCII string and MUST contain only ASCII
characters 0-9 inclusive (valid phone number digits). This field
is required.
Phone Number Sub Address
This field is the sub address of the port to be called by the
peer. This sub-option SHOULD only be used for an ISDN call. This
field is an ASCII string and only contains valid phone number
digits. This field is optional.
5.3. No-Phone-Number-Needed
Description
The No-Phone-Number option indicates that the calling
implementation is already configured with the phone number of its
Richards & Smith expires September 1996 [Page 16]
RFC DRAFT PPP BACP March 1996
multilink peer and the peer MUST NOT include the Phone Number
option in the response. This may be for security reasons, for
configuration reasons, or for any other reason.
This option MAY be used in a Call-Request packet.
A summary of the No-Phone-Number BAP Option format is shown below.
The fields are transmitted from left to right.
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
03 for No-Phone-Number.
Length
2
5.4. Reason
Description
This option is used to indicate a reason for the Request or
Response. It is meant to be used for informational purposes only.
This option MAY be used in any BAP packet.
A summary of the Reason BAP Option format is shown below. The fields
are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Reason String...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
04 for Reason.
Richards & Smith expires September 1996 [Page 17]
RFC DRAFT PPP BACP March 1996
Length
The Length field is one octet, and indicates the length of this
BAP Option including the Type, Length and Reason String fields.
Reason String
This is an ASCII string. The content of the field is
implementation dependent. An implementation MAY ignore the Reason
String field.
5.5. Link-Discriminator
Description
The Link-Discriminator option MUST be used in a Link-Drop-Query-
Request datagram. This option is used to inform the peer of which
link will be dropped.
A summary of the Link-Discriminator BAP Option format is shown below.
The fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Link Discriminator |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
05 for Link-Discriminator
Length
4
Link Discriminator
The Link Discriminator field is 2 octets in length. It contains
the Link Discriminator that was contained in the LCP Link-
Discriminator Configuration Option sent by the peer.
5.6. Call-Status
Description
The Call-Status option MUST be used in a Call-Status-Indication
Richards & Smith expires September 1996 [Page 18]
RFC DRAFT PPP BACP March 1996
datagram. This option is used to inform the peer of the status of
the completed call attempt, as well as a possible action that will
be taken (if the call failed).
A summary of the Call-Status BAP Option format is shown below. The
fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Status | Action |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
06 for Call-Status.
Length
4
Status
The Status field is 1 octet in length. If the call was
successful, the value MUST be set to 0. A non-zero value
indicates a call failure. A value of 255 indicates a non-specific
failure, and a more specific call status MAY be indicated by using
the same number as the Q.931 cause value (i.e., 1 is unassigned
number, 17 is user busy, etc.)
Action
The Action octet indicates what action the calling implementation is
taking after a failed call. If the call was sucessful, the Action
octet MUST be set to 0.
The Action octet can have the following values:
0 - No retry
1 - Will retry same number
2 - Will retry next number in list
Richards & Smith expires September 1996 [Page 19]
RFC DRAFT PPP BACP March 1996
Appendix
List of BAP datagrams and associated fields.
datagram mandatory fields allowed options
-------- ----------------- ---------------
Call-Request Link-Type No-Phone-Number
Call-Response Phone-Number
Link-Type
Callback-Request Link-Type Phone-Number
Callback-Response Link-Type
Link-Drop-Query-Request Link-Discriminator
Link-Drop-Query-Response
Call-Status-Indication Call-Status Phone-Number
Call-Status-Response
The Reason option is allowed to be included with any BAP datagram.
History of BACP
The first version of BACP was written by Craig Richards of Shiva
Corporation. This version was enhanced and improved by the MPCP
Working Group, a collaborative effort of 3Com, Ascend, Bay Networks,
Cisco, Microsoft, Shiva, US Robotics and Xylogics.
Acknowledgements
Kevin Smith of Ascend for his contributions based on his work on the
MP+ Specification. Gerry Meyer and Robert Myhill of Shiva for their
early comments and improvements. Andy Nicholson of Microsoft for his
improvements to the bandwidth management scheme. Dana Blair and Andy
Valencia of Cisco, Cheng Chen and Dan Brennan of 3Com for their good
ideas as part of the MPCP Working Group. All of the members of the
MPCP working group for their ability to work with their competitors
with enthusiasm to produce a better protocol for the industry.
Security Considerations
Security issues are not discussed in this memo.
References
[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD
51, RFC 1661, Daydreamer, July 1994.
Richards & Smith expires September 1996 [Page 20]
RFC DRAFT PPP BACP March 1996
[2] Sklower, Lloyd, McGregor & Carr, "The PPP Multilink Protocol",
RFC 1717, PPP Extensions Working Group, Work in Progress.
Chair's Address
The working group can be contacted via the current chair:
Fred Baker
Cisco Systems
519 Lado Drive
Santa Barbara, California 93111
VOICE +1 408 526 4257
FAX +1 805 681-0115
EMail: fred@cisco.com
Editors' Addresses
Craig Richards
Shiva Corporation
28 Crosby Drive
Bedford, MA 01730
VOICE +1 617 270 8419
FAX +1 617 270 8599
EMail: crich@us.shiva.com
Kevin Smith
Ascend Communications, Inc.
1275 Harbor Bay Parkway
Alameda, CA 94501
CA
EMail: kevin@ascend.com
Richards & Smith expires September 1996 [Page 21]
RFC DRAFT PPP BACP March 1996
Table of Contents
1. Introduction .......................................... 1
1.1 Specification of Requirements ................... 1
1.2 Terminology ..................................... 1
2. New LCP Configuration Option .......................... 2
2.1 Link Discriminator .............................. 2
3. BACP Operation ........................................ 3
4. BAP Operation ......................................... 4
4.1 Link Management ................................. 4
4.2 Bandwidth Management ............................ 5
4.3 BAP Packets ..................................... 6
4.4 Race Conditions ................................. 7
4.5 BAP Datagram Format ............................. 7
4.5.1 Call-Request .................................... 10
4.5.2 Call-Response ................................... 10
4.5.3 Callback-Request ................................ 11
4.5.4 Callback-Response ............................... 11
4.5.5 Link-Drop-Query-Request ......................... 11
4.5.6 Link-Drop-Query-Response ........................ 11
4.5.7 Call-Status-Indication .......................... 12
4.5.8 Call-Status-Response ............................ 12
5. BAP Datagram Options .................................. 12
5.1 Link-Type ....................................... 13
5.2 Phone-Number .................................... 15
5.2.1 Phone-Number Sub-Options ........................ 16
5.3 No-Phone-Number-Needed .......................... 16
5.4 Reason .......................................... 17
5.5 Link-Discriminator .............................. 18
5.6 Call-Status ..................................... 18
Appendix - List of BAP datagrams and associated fields ....... 20
ACKNOWLEDEMENTS .............................................. 20
SECURITY CONSIDERATIONS ...................................... 20
REFERENCES ................................................... 20
CHAIR'S ADDRESS .............................................. 21
EDITORS'S ADDRESSES .......................................... 21
Richards & Smith expires September 1996 [Page ii]
| PAFTECH AB 2003-2026 | 2026-04-22 14:56:12 |