220 likes | 358 Views
MPLS Multicast Encapsulations draft-rosen-mpls-multicast-encaps-00.txt. Toerless Eckert (eckert@cisco.com) Eric Rosen (erosen@cisco.com) Rahul Aggarwal ( rahul@juniper.net ) Yakov Rekhter (yakov@juniper.net). Issue.
E N D
MPLS Multicast Encapsulationsdraft-rosen-mpls-multicast-encaps-00.txt Toerless Eckert (eckert@cisco.com) Eric Rosen (erosen@cisco.com) Rahul Aggarwal (rahul@juniper.net) Yakov Rekhter (yakov@juniper.net)
Issue • RFC 3032 defines two data link code points for MPLS – For Unicast and Multicast. But.. • There is no need to reserve a code point to determine whether the top label is a MPLS multicast label • The NHLFE will determine whether the top label is a MPLS multicast label • The developments in MPLS multicast have shown that the definition of these code points with respect to MPLS multicast is not adequate • Similar issue with RFC 4023 for MPLS in GRE
Solution • The semantics of the data link code points as defined in RFC 3032 and RFC 4023 need to be redefined for MPLS multicast • Align with developments in MPLS multicast • But before discussing details…
Downstream Assigned vs Upstream Assigned Labels • Consider Ru (upstream LSR) and Rd (downstream LSR) as adjacent in a LSP for FEC F. The top label of the MPLS packet sent by Ru to Rd is L. • Downstream Assigned Label - Rd distributes the binding of FEC F to label L to Ru • Upstream Assigned Label – Ru distributes the binding of FEC F to label L to Rd
MPLS Multicast and Upstream Assigned Labels • Ru is adjacent to <Rd1…Rdn> in a LSP and is connected to to <Rd1…Rdn> via a multi-access media or Tunnel. • Further Ru wishes to transmit a single copy of a MPLS Multicast packet belonging to the LSP to <Rd1…Rdn> • The same top label must be received by <Rd1..Rdn> for this MPLS multicast packet • To accomplish this Ru assigns an upstream assigned label and distributes it to <Rd1…Rdn> • Upstream label assignment architecture in draft-raggarwa-mpls-upstream-label – Next presentation
Back to Code Points • Three different types of data links/tunnels • P2P – downstream assigned labels only • P2MP – All top labels must be downstream assigned or upstream assigned. Determined apriori • MP2MP - Top labels may be downstream assigned or upstream assigned. Encapsulation must provide a code-point to make this distinction
Ethernet Code Points and MPLS Multicast • Ethernet is an example of a MP2MP data link • 0x8847 [unicast code point] is used for MPLS multicast packets as long as the top label is downstream assigned. • The MAC address is that of the intended recipient i.e. a unicast MAC • 0x8848 [Former multicast code point] is used when the top label is upstream assigned • The MAC address is a multicast MAC derived from the label – 01 – 00 - 5e - 8a - bc - de [abcde is the 20 bit label value]
GRE Protocol Type and MPLS Multicast • Modifies RFC 4023 • If the destination address is an IP multicast address and both downstream and upstream assigned MPLS labeled packets are carried on the same tunnel • 0x8847 is used for downstream assigned lbls • 0x8848 is used for upstream assigned lbls • If the destination address is an IP multicast address and only upstream assigned or only downstream assigned MPLS labeled packets are carried • 0x8847 is always used
IP Protocol Number • IPv4 protocol number or IPv6 Next Header Field is always set to 137 • The top label is always downstream assigned or always upstream assigned
MPLS Upstream Label Assignment and Context Specific Label Spacedraft-raggarwa-mpls-upstream-label-00.txt Rahul Aggarwal (rahul@juniper.net) Yakov Rekhter (yakov@juniper.net) Eric Rosen (erosen@cisco.com)
Scope • RFC 3031 limits the MPLS architecture to downstream assigned labels • This draft generalizes the notion of a per-interface label space to a “context-specific” label space • Neighbor label space is introduced as an example of “context-specific” label space • This draft extends the MPLS architecture for upstream assigned labels
Context-Specific Label Space • RFC 3031 describes platform and interface based label spaces • This document describes the more general notion of a “context-specific” label space • A LSR may maintain multiple context-specific label spaces • A context-specific label space may be used for downstream-assigned or upstream-assigned labels • An interface-based label space is an example of a context-specific label space for downstream-assigned labels • Label space is determined by the interface
Context-Specific Label Space and Upstream Assigned Labels • Upstream Assigned Labels are always looked up in a context-specific label space • The context is provided by the LSR that assigns and distributes the upstream assigned label binding, L for LSP1 • The LSR that receives the upstream assigned label binding must be able to determine the context when it receives a MPLS packet with a top label ‘L’ on LSP1
Context-Specific Label Space and Upstream Assigned Labels… • Tunnel Specific Label Space • Determined by the tunnel on which the MPLS packet is received • If the tunnel is a MPLS tunnel, PHP must be turned off • Neighbor Specific Label Space • Determined by the neighbor from which the MPLS packet is received
Upstream Assigned Labels • Motivation was described earlier • A LSR may distribute upstream assigned labels for FEC F to its downstream LSRs and downstream assigned labels to its upstream LSRs • Two adjacent LSRs, Ru and Rd, on LSP LSP1 for FEC F must use either upstream label assignment or downstream label assignment for FEC F, for packets transmitted from Ru to Rd
Assigning Upstream Assigned Labels • An upstream assigned label must be unambiguous in the context-specific label space in which the downstream LSR will look it up • For the upstream LSR, an upstream assigned label is an outgoing label and forms part of the NHLFE
Distributing Upstream Assigned Labels • Must not be distributed unless its known that a downstream LSR supports them • Requires protocol discovery extensions • Assumption is that the downstream LSR can accept upstream assigned labels from the entire label range • Label distribution protocol considerations are based on RFC 3031 • Distribution is similar to ordered LSP control or independent LSP control of downstream assigned labels
Downstream LSR Requirements • A downstream LSR must be able to determine • Whether a label is upstream assigned and • The context-specific label space in which to lookup the packet
Data Link Encapsulation • Upstream assigned label is encapsulated directly in a data link header by Ru • Is the label upstream assigned ? – draft-rosen-mpls-mcast-encaps • Rd maintains a separate neighbor label space for Ru • What is the context ? Determined by the data link header. Eg. For ethernet, the source MAC address
MPLS Tunnel Encapsulation • Ru transmits the packet, the top label L of which is upstream assigned, by encapsulating it in a MPLS tunnel • Rd determines the context of this packet using the labels above L in the label stack • One or more labels above L may also be upstream assigned • Rd may maintain a separate label space for the tunnel or a single label space for Ru
GRE Tunnel Encapsulation • Ru transmits the packet, the top label L of which is upstream assigned, by encapsulating it in a GRE tunnel • Rd determines the context of this packet using the IP/GRE header – source/dest address • Rd may maintain a separate label space for the tunnel or a single label space for Ru
Conclusion • Comments are welcome • We would like these drafts to be WG drafts