FabricPath

  1. FabricPath
  2. FabricPath frame
    1. ODA/OSA format
    2. Ftag
  3. Dynamic resource allocation protocol (DRAP)
  4. Data plane
  5. vPC+

FabricPath

  • enhanced L2 license
  • Clos, IS-IS
  • data plane learning
  • does not transport BPDU (including TCN), 802.1Q tags
  • STP BID for FP: c84c.75fa.6000 – static ≡ single switch for STP
  • FP is always STP root
    • edge have same priority
    • edge have RootGuard on all ports, otherwise STP loop via FP
  • edge ports – trunks
  • incompatible with VXLAN
(config)# install feature-set fabricpath
(config)# feature-set fabricpath

(config)# fabricpath switch-id <ID>
(config)# fabricpath domain default
(config-fabricpath-isis)# topology <N>

; 16 default
(config-fabricpath-isis-topo)# maximum-path <N>

(config-fabricpath-isis-topo)# member vlan <RANGE>
; disabled by default, allow VLAN to FP
(config-vlan)# mode fabricpath
; FP encapsulation
(config-if)# switchport mode fabricpath
# show fabricpath route
# show fabricpath isis interface brief

FabricPath frame

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ODA                              |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                              OSA                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             0x8903            |       Ftag        |    TTL    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Destination MAC                        |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                           Source MAC                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             0x8100            |Prio |D|        VLAN ID        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Ethertype           |                               \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               /
\                              Data                             \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           CRC (new)                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ODA/OSA: outer destination/source address
Ftag: forwarding graph (unique)

ODA/OSA format

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Reserved |1|I|  Rsvd |       Switch ID       | Sub Switch ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Local Port ID         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

I: individual/group address
Switch ID: FP switching, unique
Sub Switch ID: o or vPC+
Local port ID: locally significant, src/dst port – reduced MAC lookups

Ftag

  • unicast traffic: Ftag = 0 (FP topology)
  • BUM traffic: multidestination tree
  • ingress switch load-balances traffic over Ftag trees
  • core switches replicate traffic to all ports in a tree, except ingress port
  • topology separation – reduce BUM scope

Dynamic resource allocation protocol (DRAP)

  • assigns switch ID:
    • random
    • if new switch chooses existing ID – rerun random on new switch
    • switch with lower switch ID retains switch ID, another switch selects new value
    • system ID = MAC
  • assign Ftag
    • 2 trees
    • root election
      • highest priority
      • higher MAC (VDC MAC)
      • switch ID is higher
  • data plane forwarding is prohibited before switch ID negotiation
; 64 default, multidestination tree priority
(config-fabricpath-isis-topo)# root-priority <N>

Data plane

  1. ingress switch
    • MAC lookup → switch ID → FP next-hop
    • FP encapsulation
    • TTL = 32
    • MAC learning on frame src
  2. core switch
    • switch ID lookup → FP next-hop
    • TTL decrement
    • forwarding is based on ODA
    • no MAC learning
  3. egress switch
    • verifies ODA = own switch ID
    • LID or MAC lookup
    • conversational MAC learning: learn src MAC if dst MAC is already known
    • bcast refreshes only existing entries, does not create new entries (e.g., gratuitous ARP)
    • mcast triggers learning: forwarding with FHRP enabled in segment

vPC+

  • solves MAC flapping: MAC in known from different switch IDs due to load-balancing
  • emulated switch ID for vPC peers in transmitted frames with user traffic
  • emulated switch ID is reachable via both vPC peers in IS-IS
(config-vpc-domain)# fabricpath switch-id <ID>