The Bandwidth Allocation Protocol (BAP) can be used to manage the number of links in a multi-link bundle. BAP defines datagrams to coordinate adding and removing individual links in a multi-link bundle, as well as specifying which peer is responsible for various decisions regarding managing bandwidth during a multi-link connection. The Bandwidth Allocation Control Protocol (BACP) is the associated control protocol for BAP. BACP defines control parameters for the BAP protocol to use.
As PPP multilink implementations become increasingly common, there is a greater need for some conformity in how to manage bandwidth over such links. BACP and BAP 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 number deltas may be passed in the Call-Control packets to minimize the end user's configuration.
BAP defines packets, parameters and negotiation procedures to allow two endpoints to negotiate gracefully adding and dropping links from a multilink bundle. 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. Use of the negotiation features of BAP makes it unnecessary to require a "common" algorithm for determining when to add and remove links in a multilink bundle.
After BACP reaches the opened state, either peer MAY request the 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.
Protocol Structure
BAP Packet structure:
| 8 bits | 16 bits | Variable |
| Type | Length | Data |
- Type - Indicates the type of the BAP Datagram Option. This field is binary coded Hexadecimal.
- Length - Length of the BAP packet.
BACP packet structure:
| 8 bits | 16 bits | 32 bits | Variable |
| Code | Identifier | Length | Data |
- Code - Decimal value which indicates the type of BACP packet.
- Identifier - Decimal value which aids in matching requests and replies.
- Length - Length of the BACP packet, including the Code, Identifier, Length and Data fields.
- Data - Variable length field which may contain one or more configuration options.
Related protocols: PPP, PPPoE, PPPoA, SLIP, CHAP, HDLC, LCP, NCP
Sponsor Source: BAP and BACP are defined by IETF (http://www.ietf.org).
Reference: http://www.javvin.com/protocol/rfc2125.pdf: The PPP Bandwidth Allocation Protocol (BAP) / The PPP Bandwidth Allocation Control Protocol (BACP).
