I'm newby in configuring EFP on ASR series. So after rereading the manuals I cannot understand how trunk EFP service instance recognize what TAG must be imposed on frame. Part of initials configuration:
no ip address
service instance 10 ethernet
encapsulation dot1q 10
bridge-domain 30 ! bridge-domain will be S-Tag on trunk port
service instance 11 ethernet
encapsulation dot1q 11
bridge-domain 40 ! bridge-domain will be S-Tag on trunk port
no ip address
service instance trunk 1 ethernet
encapsulation dot1q 30-40 ! in this case, we only need vlan 30 and 40
rewrite ingress tag pop 1 symmetric
bridge-domain from-encapsulation ! outer vlan tag is used as bridge-domain
Manuals say that on ingress (G0/1/0) frame will be (in this particular case) sent to bridge-domain 30 or 40 based on incoming tag 10 or 11 beeing untouched. Ok. It is unclear how trunk EFP become member of 30-40 b/d, but let suppose that "bridge-domain from-encapsulation" statement force this in such a way that frames with tags 10 or 11 directed to G0/1/2.
On egress (G0/1/2) what statement forces specific tag (10 or 11) to be prepended with either 40 or 30 S-tag? Either frames will egress G0/1/2 with its "native" tag (10 or 11). That is why Q arise, because manuals say that only relevant in this case statement "bridge-domain from-encapsulation" behavior is to define what bridge-domain frame will enter on ingress (G0/1/2 in this case) based on outer tag! :O)
Can anybody explain me, is this also extended undocumented influence of "bridge-domain from-encapsulation" to egress direction?
Firstly, i should say that i found this question interesting so i decided to look at the docs. I have not configured this before or even read about it so please feel free to ignore but this is the way i understand it.
It is unclear how trunk EFP become member of 30-40 b/d, but let suppose that "bridge-domain from-encapsulation" statement force this in such a way that frames with tags 10 or 11 directed to G0/1/2.
The "bridge-domain from-encapsulation" command tells your trunk port to derive the bridge domains from the encapsulations you have configured. So you have this in your config under the gi0/2 interface -
encapsulation dot1q 30-40
which tells the trunk interface to use bridge domains 30 -> 40 although as you say you are only using bridge domains 30 & 40.
On egress (G0/1/2) what statement forces specific tag (10 or 11) to be prepended with either 40 or 30 S-tag?
This statement - "rewrite ingress tag pop 1 symmetric". When you apply this command it works both ways, on ingress to gi0/2 and on egress from gi0/2 ie.
1) frames received on gi0/2 ie. ingress will have the top tag removed which is what you want because the top tag is either 30 or 40
2) because of the keyword symmetric the opposite is done in the reverse direction ie. when traffic leaves gi0/2 ie. egress a tag is added to the frame. The tag would be the bridge domain ID.
Note that most of the docs i found said that the "symmetric" keyword is not supported when you use a range of vlans but i did find a specific doc on the use of trunk ports and the config there did show it working with a range of vlans.
Like i say, i read up on this out of interest so i may not be right and i have no idea whether your configuration is actually working so apologies if i have misunderstood your questions.