Provider Backbone Bridges (PBB; known as "mac-in-mac") is a set of architecture and protocols for routing over a provider's network allowing interconnection of multiple Provider Bridge Networks without losing each customer's individually defined VLANs. It was initially created by Nortel before being submitted to the IEEE 802.1 committee for standardization. The final standard was approved by the IEEE in June 2008 as IEEE 802.1ah-2008 and has been integrated into IEEE 802.1Q-2011.
The now ubiquitous Ethernet was initially defined as a Local Area Network (LAN) technology to interconnect the computers within a small organization in which these host computers were very close in proximity to each other. Over the years, Ethernet has become such a popular technology that it became the default Data Link Layer (OSI Layer 2) mechanism for data transport. This created a need for extending the Ethernet from a customer LAN bridging domain to service provider MAN, also known as the Provider bridging domain. For this, a 4 byte S-Tag or Service Tag, a type of Virtual LAN tag, was added to the header of the Ethernet frame in IEEE 802.1ad standard. In the service provider domain, switching was based on S-Tag and destination MAC address, and C-tag was used to create virtual LAN within the customer domain. This technology is also known as QinQ or Q-tunneling.
QinQ does not offer true separation of customer and provider domains, but is merely a way to overcome the limitations on the VLAN identifier space. It can also help in separation of the customer and provider control domains when used with other features like control protocol tunneling or Per-VLAN Spanning Tree (like spanning trees etc.). There is still the problem of having too little control on the MAC addresses, since QinQ forwarding is still based on the customer destination addresses. Thus, better mechanisms are needed.
The idea of PBB is to offer complete separation of customer and provider domains. For this purpose, a new Ethernet header has been defined. This header may take multiple different forms, but the main components of the header are:
PBB defines a 48 bit B-DA and 48 bit B-SA to indicate the backbone source and destination MAC addresses. It also defines a 12 bit B-VID (backbone VLAN ID) and 24 bit I-SID (Service Instance VLAN ID). The bridges in the PBB domain switch based on the B-VID and B-DA values, which contain 60 bits total. Bridges learn based on the B-SA and ingress port value and hence is completely unaware of the customer MAC addresses. I-SID allows to distinguish the services within a PBB domain.