BPE(4) FreeBSD Kernel Interfaces Manual BPE(4)
NAME
bpe - Backbone Provider Edge pseudo-device
SYNOPSIS
pseudo-device bpe
DESCRIPTION
The bpe driver creates IEEE 802.1Q Provider Backbone Bridge (PBB)
networks by acting as a Backbone Edge Bridge (BEB). PBB, also known as
mac-in-mac, was originally specified in IEEE 802.1ah-2008 and became part
of IEEE 802.1Q-2011.
A Provider Backbone Bridge Network (PBBN) consists of BEBs interconnected
by Backbone Core Bridges (BCBs) to form an Ethernet network for the
transport of encapsulated Ethernet packets. Where VLAN and SVLAN
protocols add a shim to differentiate Ethernet packets for different
networks but retain the Ethernet addresses of encapsulated traffic, PBB
completely encapsulates Ethernet packets for transmission between BEBs on
a PBBN. This removes the need for intermediate BCB devices on the
backbone network to learn the Ethernet addresses of devices on the
encapsulated network, but requires each BEB to maintain a mapping of
addresses on the encapsulated network to peer BEBs.
A PBB packet consists of another Ethernet frame containing Ethernet
addresses for BEBs and the PBB Ethernet protocol type (0x88e7), a 32-bit
Backbone Service Instance Tag (I-TAG), followed by the encapsulated
Ethernet frame. The I-TAG contains a 24-bit Backbone Service Instance
Identifier (I-SID) to differentiate different PBBNs on the same backbone
network
IEEE 802.1Q describes customer VLANs being encapsulated by PBB, which in
turn uses an S-VLAN service. This can be implemented with vlan(4) using
a bpe interface as the parent, and with the bpe interface using svlan(4)
as the parent. bpe itself does not require this topology, therefore
allowing flexible deployment and network topologies.
The bpe driver implements a learning bridge on each interface. The
driver will learn the mapping of BEPs to encapsulated Ethernet address
based on traffic received from other devices on the backbone network.
Traffic sent to broadcast, multicast, or unknown unicast Ethernet
addresses will be flooded to a multicast address on the backbone network.
The multicast address used for each PBB Service Instance will begin with
01:1e:83 as the first three octets, with the I-SID as the last three
octets. For example, a bpe interface with a vnetid of 1024 (0x400 in
hex) will have a multicast group address of 01:1e:83:00:04:00. The
address learning in bpe only uses the Ethernet addresses of encapsulated
traffic for its forwarding decisions; it does not use VLAN or S-VLAN tags
to differentiate services.
bpe interfaces can be created at runtime using the ifconfig bpeN create
command or by setting up a hostname.if(5) configuration file for
netstart(8). The interface itself can be configured with ifconfig(8);
see its manual page for more information.
bpe interfaces must be configured with a parent Ethernet interface to
operate, and a virtual network identifier for use as the I-SID.
The I-TAG includes a priority field. By default, the value of the
priority field in a transmitted packet is based on the priority of
packets sent over the interface, which may be altered via pf.conf(5); see
the prio option for more information. Alternatively, txprio can set a
specific priority for transmitted packets.
bpe interfaces support the following ioctl(2)s:
SIOCSIFPARENT struct if_parent *
Set the parent interface. The parent may only be configured
while the virtual interface is administratively down.
SIOCGIFPARENT struct if_parent *
Get the currently configured parent interface.
SIOCDIFPARENT struct ifreq *
Delete the parent interface configuration. The parent may
only be removed while the virtual interface is
administratively down.
SIOCSVNETID struct ifreq *
Set the virtual network identifier. Valid identifiers are
24-bit values in the range 0 to 16777215.
SIOCGVNETID struct ifreq *
Get the currently configured virtual network identifier.
SEE ALSO
bridge(4), inet(4), ip(4), netintro(4), vlan(4), hostname.if(5),
pf.conf(5), ifconfig(8), netstart(8)
IEEE 802.1Q standard,
https://standards.ieee.org/standard/802_1Q-2018.html.
IEEE 802.1ah standard, Provider Backbone Bridges.
HISTORY
The bpe driver first appeared in OpenBSD 6.5.
AUTHORS
David Gwynne <
[email protected]>.
FreeBSD 14.1-RELEASE-p8 September 12, 2022 FreeBSD 14.1-RELEASE-p8