virtual private lan service is a full mesh of pseudowires between involved pe routers
in order to provide a single broadcast domain to the customer over the mpls core. the pe routers
discover each other from bgp vpls afi similar to layer3 mpls vpn.
each pe router advertises it's own rd+loopback to the bgp vpls afi
with a configured export rt extended community, and find the other pe routers in vpls afi
with the import rt extended community. once the peers are found, a vpls could use two different modes.
in the ldp mode, each given pe router will bring up an
atom session to each other pe routers in the given vpls,
which will result in a full mesh of ldp sessions, which is obviously a full
mesh of pseudowires. since a given pe router have pseudowire to each other
pe routers within the vpls, it can easily find out the sending pe router
and update it's mac address table accordingly.
in bgp mode, each pe router allocates a label block which
is advertised with the configured ve id in the bgp nlri. if a given pe router
wants to send an ethernet frame to an other pe router, it uses the remote's
label base, adds it's own ve id and uses the result as the innel service label.
the outer, transport label is taken from the global table looking for an appropirate
lsp for the remote pe router. the receiving pe router
substracts it's own label base from the service label and it
gives him the ve number of the sending pe router and this is how it can update it's
mac address table.
the bum traffic optionally could be carried by some p2mp technologies regardless the chosen mode.