Routing

last person joined: 2 days ago 

Ask questions and share experiences about ACX Series, CTP Series, MX Series, PTX Series, SSR Series, JRR Series, and all things routing, including portfolios and protocols.
  • 1.  How to recognize the payload of the labeled packet

    Posted 11-12-2011 01:40

    Hi, all


    I have a question about how to recognize the payload of the labeled packet

     

    We all know that there is no field in  MPLS header(20bit label value, 3bit Traffic Class field, 1bit Bottom of stack, 8 bit Time to Live) used for identifying the payload of a labeled packet. When a router received a labeled packet from it's neighbor, and based on the information in the routing table mpls.0, the label should be poped(assumed that the packet had only one label), so how does the router know that the packet is a ipv4 or ipv6 packet?

     

    Thanks!



  • 2.  RE: How to recognize the payload of the labeled packet
    Best Answer

    Posted 11-13-2011 01:03

    Hi

     

    The router must know in advance which label corresponds to packets of which L3 type
    (this info should be contained in mpls.0 table and derived from signaling protocol).

     

    Check out RFC 3032 (http://www.ietf.org/rfc/rfc3032.txt):

     

    "When the last label is popped from a packet's label stack (resulting
    in the stack being emptied), further processing of the packet is
    based on the packet's network layer header. The LSR which pops the
    last label off the stack must therefore be able to identify the
    packet's network layer protocol. However, the label stack does not
    contain any field which explicitly identifies the network layer
    protocol. This means that the identity of the network layer protocol
    must be inferable from the value of the label which is popped from
    the bottom of the stack, possibly along with the contents of the
    network layer header itself.

     

    Therefore, when the first label is pushed onto a network layer
    packet, either the label must be one which is used ONLY for packets
    of a particular network layer, or the label must be one which is used
    ONLY for a specified set of network layer protocols, where packets of
    the specified network layers can be distinguished by inspection of
    the network layer header. Furthermore, whenever that label is
    replaced by another label value during a packet's transit, the new
    value must also be one which meets the same criteria. If these
    conditions are not met, the LSR which pops the last label off a
    packet will not be able to identify the packet's network layer
    protocol."

     

    One example is Explicit NULL Label which is dofferent for IPv4 (label = 0)
    and IPv6 (label = 2).

     

    I hope this helps.



  • 3.  RE: How to recognize the payload of the labeled packet

    Posted 11-13-2011 01:27

    Thanks for your help.

     

    So how does JUNOS implement. Is there a label range used for ipv4 or ipv6 respectively.

     

    ThankS!



  • 4.  RE: How to recognize the payload of the labeled packet

    Posted 11-13-2011 02:35

    Hi

     

    Although there is a special range for static LSP labels, there is no separate ranges 

    for IPv6 and IPv4 traffic. The labels for all types of traffic are assigned dynamically

    from the common "pool". See e.g. table in

     

    http://netdept.com/mplsdotzero.html



  • 5.  RE: How to recognize the payload of the labeled packet

    Posted 11-13-2011 03:34

    Smiley HappyThankS!

    But are you sure that the range 1024 to 9999 are reserved for internal use (for example, CCC labels, L3VPN Inner labels)

    Cause I did a test in L3vpn. Label was assigned by BGP for a labeled vpn-ipv4 prefix not in that range.

     

    ThankS!